http://www.perlmonks.org?node_id=640210


in reply to Re^2: When greedy constructs do battle, can I choose the winner?
in thread When greedy constructs do battle, can I choose the winner?

For a number such as 243210890000, the non greedy {1,5} grabs the least it can, the 9, correct?

Incorrect. The string is processed left to right, so the non-greedy {1,5} will match one character then try to match zeroes to the end of the string. Since this fails the overall match, the RE engine will backtrack and try two characters, then three and four and five. When the five character version fails, backtracking will cause the starting point of the {1,5} match to move over one character and try again. This continues until either there's a match or the RE engine determines that it can't match.