use strict; my $x='Mr. Popcorn Dave'; print "Name valid\n" if m/^\s* #ZERO OR MORE SPACES (M(s|rs?|iss)\.?\s+)? #POSS SALUTATION [A-Z]+\.?\s+ #NAME AFTER SAL. [A-Z]+ #2nd NAME \s*([A-Z]+\s*)?$/ix; #SUFFIX