in reply to Regex help

Assuming that you have accidentally left off a final quote, I am assuming that someone tried to get cute with a regex and dropped the ball. Here's what I think was meant:

$validation-regex="^(?s:.{0,1100})$";

The following would be an equivalent regex:

$string =~ /^.{0,1100}$/s;

The (?s:) construct turns on the appropriate modifer for the whatever in included in the parens. In this case, it appears that the author of the regex is trying to match 0 to 1100 characters (not words) and that the /s modifier was tossed in to make the dot match the newline.

Reading through perlre, you'll see that you can use the (?misx-misx:) construct to turn switches off an on for a particular section of the regex. For example, what if you're trying to match MacDonald? Those first four letters could be virtually any case, but we don't want to make the entire regex match case-insensitive as that would be inefficient. Here's on way to match it:

$last_name =~ /(?i:macd)onald/;
That makes the 'macd' part a case-insensitive match, but the rest is still required to have an exact match.

Cheers,
Ovid

Join the Perlmonks Setiathome Group or just click on the the link and check out our stats.