"Morris, Chris" <ChrisM / SNELLINGCORP.COM> wrote:
>
>I'm a regular expression novice. In a recent thread on word wrapping, there
>were posts that included the following regexp:
>
>/.{1,50}(?:\s|\Z)/
>
>... after dinking with this, it seems the ?: causes a backward search from
>the end.
>
>1) Is my assumption correct?

No.

>2) Is this documented anywhere? It seems to be missing from the pickaxe 
>book
>and one of the perl docs I found
>(http://www.perl.com/pub/doc/manual/html/pod/perlre.html) after others
>mentioned perl & ruby regexp are similar doesn't mention ?: at all.

It is Perl specific, but Jeff Pinyan has created a
utility to take an RE and come back with an explanation
of how it is structured.  You can access it at
http://www.crusoe.net/~jeffp/YAPE/OGRE.cgi (or download
it and run it offline - which will be much quicker).

It should offer you a good explanation of what this RE
means.  To its explanation I will add that the engine
does a brute-force search for finding a way to match,
starting with the beginning of the string and the
beginning of the RE.  Therefore the .{1,50} rule is
greedy and takes precedence (ie it prefers to find a
match where that is as long as possible, only
backtracking to less desirable matches if it cannot do
that.)

Cheers,
Ben
_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com