Look at this case:
`'25' matchesRegex: '([0-9]|[1-9][0-9])' -> false`
`'25' matchesRegex: '([1-9][0-9]|[0-9])' -> true`
That is, ( a | b ) is not euqal to ( b | a ) " a or b is not equal to b or a" and should describe a range of 0 to 99.
I don't understand why the first sentence answers false. Even Pharo 1.1 answers false (so this is very very old behavior). I checked on other dialects and it answers true. I then checked here [1] and it also find matches.
So...do you see some rational explanation or sounds like a bug?��
--