Although I suspect you know, for anybody else reading this a slight clarification:
is that matches are greedy (unless you tell them not to be) and will get the largest match they can
This is not strictly true with perls NFA based regex engine. They will match the leftmost longest match that they can. This doesnt mean the longest possible match as a DFA based regex engine (egrep) would provide.
Thus
"AAABBBBBBBBAAAAAAAAAAAA"=~m/A+|A+B+A+/;
Will match "AAA" and not the entire string. But a DFA based regex engine would match the entire string.
OTOH reversing the option
"AAABBBBBBBBAAAAAAAAAAAA"=~m/A+B+A+|A+/;
Would match the entire string using either engine.
Yves / DeMerphq
---
Writing a good benchmark isn't as easy it might look. |