Last, but not least, let's say that you store your regular expressions in a config file or something. In many such situations, you can't change the application's logic to say "
don't match this pattern." Yet, there's still a way, with negative lookahead assertions.
my $re = qr/(?!\A.*38[0-9]{8}[A-Z]{3}.*\z)/;
if ($reference =~ m/$re/)
{
# 38nnnnnnnnXXX pattern was not found
$reference = "";
}
--
[ e d @ h a l l e y . c c ]