And..as Esteban Maringolo points out, it also happens with sequence of chars... 'bb' matchesRegex: '([a-z]|[b-z][a-z])' --> false. Cannot be simpler than this: '25' matchesRegex: '(\d\d|\d)' --> true '25' matchesRegex: '(\d|\d\d)' --> false So there is something related to the OR. Thoughts? On Wed, Feb 20, 2019 at 5:33 PM Mariano Martinez Peck <marianopeck@gmail.com> wrote:
BTW, I am CCing GemStone mailing list too because it answers false there too.
On Wed, Feb 20, 2019 at 5:26 PM Mariano Martinez Peck < marianopeck@gmail.com> wrote:
Hi guys,
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?
[1] https://regex101.com/r/MqVXz8/1
-- Mariano https://twitter.com/MartinezPeck http://marianopeck.wordpress.com
-- Mariano https://twitter.com/MartinezPeck http://marianopeck.wordpress.com
-- Mariano https://twitter.com/MartinezPeck http://marianopeck.wordpress.com