use Data::Dumper; my $re_bad = qr'@@([A-Z$#@_#]*) (?! [A-Za-z0-9$#@_] )'x; print Dumper $re_bad;