sub regex2 { my $pat = shift ; eval q%sub { my $hits = '0'; while ($_[0] =~ /$pat/iogx) {$hits++ ;} if ($hits) { return $hits ; } else { return undef() ; } }%; } #### my $foobar = regex2 '\bfoo\W+(?:\w+\W+){0,6}bar\b' ; #### my $ugly_and_evil = regex2 '\bteam(?!\W+(\w+\W+){0,5}management\b)' ; #### my $broken_and_wrong = regex2 '(?## my $inherently_evil = regex2 '(?