** is fairly common. Speaking personally, I strongly dislike "identifiers that parse like operators" of which the most notorious is Pascal's inline mod. Unicode is best avoided at least in a base language (i.e. it would be a nice thing to be able to construct custom Unicode operators on a project- or site-specific basis).
I think the best solution would be to make it strongly depend on the type of the operands, i.e. to distinguish between bytes etc. which can be xored, anded etc. and integers which can be added and multiplied. In fact I came across this a year or so ago written as (in part) a criticism of APL's odd parsing:
...one need only deal with operators that have the same kind of operand, i.e. that have the same domains. For example, A + B > C must imply comparing A + B with C, because A + B gives a numerical sresult whereas B > C gives a logical result and one cannot add a number and a logical value, despite APL and PL/1 pretending that one can. There is, therefore, no need to establish relative precedences for + and >. P.A.Samet, UCL, circa 1975.
My holy grail is a moderately efficient parser which can handle the ambiguities relating to monadic/dyadic ^ (dereference, xor, exponentiation) and monadic ! (negation, factorial) as well as Smalltalk-style keywords.
Looking back through some notes, ! is an interesting case particularly if we would also like it to be a dyadic operator to suit e.g. APL's combination operator.
x! x factorial
!y y negated, only valid if y is a boolean
!!z Integer z converted to a boolean
a ! b Number of combinations of b taken in groups of a
a! b Can't be postfix factorial, lacks a dyadic operator
a !b Can't be prefix negation, and b not a boolean
a !!b Invalid, lacks a dyadic operator
a! ! b Number of combinations of b taken in groups of a! (a factorial)
What I concluded from that type of exercise is that a character could be used for a fairly wide mix of operators including type-dependent local definitions, but that the situation could be improved enormously if there were an initial (i.e. project level) declaration of what characters and character sequences should be considered valid operators with association rules etc. and that definitions were not allowed to vary this.