$ perl -Mstrict -Mwarnings -le 'my $x = "-"; print $x =~ m-[ /\\-]- ? 1 : 0' Unmatched [ in regex; marked by <-- HERE in m/[ <-- HERE /\\/ at -e line 1. $ perl -Mstrict -Mwarnings -le 'my $x = "-"; print $x =~ m-[ /\\\-]- ? 1 : 0' 1 $ perl -Mstrict -Mwarnings -le 'my $x = "-"; print $x =~ m![ /\\-]! ? 1 : 0' 1