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

What I had figured, after reading that in the docs, was "Welp, you can do just about anything in Perl just about any way you want to, I wonder if I can break that behavior somehow?"

While we're on the subject, let me run my interpretation of what's going on "behind the scenes" with the engine by y'all, to see if I understand it correctly. Let's take the simple pattern:

"444440000" =~ /(/d*)(0{3,10})/

So, the first thing it tries to do is give the /d* as much as possible, so the /d* is trying to match the whole string. Then there aren't enough zeros to match the second part, so it gives up and backs up, trying to put one less character into (/d*). It continues to fail and back up one character less until it comes out with a match.

So in the above example, it tries things out like the following?

/d* 0{3,10} 444440000 nothing 44444000 0 4444400 00 444440 000 (Success!)

Replies are listed 'Best First'.
Re^3: When greedy constructs do battle, can I choose the winner?
by duff (Parson) on Sep 21, 2007 at 02:22 UTC

    Yep. That's it. (Aside from your slash leaning the wrong direction).