($\, $,) = ("\n", "\t"); print $_, /\b(\d+)\b(?(?{$1 >= 256})(?!))/ ? 'Y' : 'N' for 0 .. 1000; #### /\b(\d+)\b/ #### (?(condition)yes-pattern) #### (?{ code }) #### (?!) #### /^(\d+)(?(?{$1 >= 256})(?!))\.(\d+)(?(?{$2 >= 256})(?!))\.(\d+)(?(?{$3 >= 256})(?!))\.(\d+)(?(?{$4 >= 256})(?!))$/ #### /^(\d+)\.(\d+)\.(\d+)\.(\d+)$(?(?{$1 >= 256 || $2 > 256 || $3 >= 256 ||$4 >= 256})(?!))/