my $input = 'http://www.knowmad.com/'; my $constraint_good = '/[\\!@#%&_:\$\^\*\(\)\+\.\/]+/'; my $constraint_bad = '/[!@#%&_:\$\^\*\(\)\+\.\/]+\\/'; if ( $constraint_good =~ m@^\s*(/.+/|m(.).+\2)[cgimosx]*\s*$@ ) { my $sub = eval 'sub { $_[0] =~ '. $constraint_good . '}'; die "Error compiling regular expression $constraint_good: $@" if $@; print "matched\n"; } else { print "no good.\n" } if ( $constraint_bad =~ m@^\s*(/.+/|m(.).+\2)[cgimosx]*\s*$@ ) { my $sub = eval 'sub { $_[0] =~ '. $constraint_bad . '}'; die "Error compiling regular expression $constraint_bad: $@" if $@; print "matched\n"; } else { print "no good.\n" }