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