I'm not sure I'm following here--at least using Java
RuleBasedCollator
you should be able to achieve any collation sequence whatsoever.
But I'm not sure what you mean by sorting 646 before 10646.
A possible algorithm is that any sequence of digits counts as a single
collation unit, which is collated before the first collation unit derived
from non-digit characters, and has a collation value equal to its decimal
value.
I don't believe you can achieve this with a RuleBasedCollator.
But I've seen software that lists the files in a directory with abc9 before
abc20 - very nice too!
Michael Kay