non automatic tellsimp rule on addition?



I think that such a brief explanation using the terms non-associative 
and non-commutative
will not be informative to the typical user.  Even if the user knows the 
meaning
of the terms it might not convey how the match may or may not work.

Describing the actual situation in which a match will or will not occur is
probably tantamount to trying to recount the algorithm used for matching.


note that components of the pattern may have matchdeclare declarations.

A rule that says tellsimp(a(h)+b(h) ,c(h))   with h being declared 
predicate p,
e.g.  matchdeclare(h,p)

can sometimes be rephrased via

ratsubst.

e..g.
s:target_expression;

  for h in listofvars(s) do if p(h) then s:ratsubstc(h), a(h)+b(h), s);
s;

This has the advantage of reducing the transformation of sums into a
more easily defined situation.  The disadvantage is that it is using
the rational function representation which may do other transformations
which may be unwelcome.