in reply to Reg Ex to find IP address in range

I'm right in the middle of Mastering Regular Expressions and he has lots of pretty pictures of how to carve up the lexical domain of strings to permit all and only the right types of numbers. He has IPs, dates and times. Using regexes for these things seems strange and error prone (eg. there was recently a bug in FormBuilder's date regex).

Anyway, here's one the treats the digits as a number. I don't think this is a good solution in this case, but it does escape the lexical prison.

my $rx = qr/\A (\d+) (?(?{ $1>=0 && $1<=55 }) | (?!)) \. (\d+) (?(?{ $2>=0 && $2<=55 }) | (?!)) \z/x;