use re 'eval'; my $username = "jryan"; my $password = "perl6rules"; print $password =~ / (?= [^\d]*\d ) (?= [^a-z]*[a-z] ) (?=^ (?: (?!(.)\1\1) . )+ $) (?!^ \Q$username\E $) (?!^ (??{quotemeta reverse $username}) $) ^\w{8,12}$ /ix ? "(-:" : ")-:";