"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