my @names = qw(Jones Rogers Edwards Smith Jackson) ; my $names_re = join("|", @names) ; foreach my $name ($text=~/(\b(?:[A-Z](?:\.|[a-z]+)\s+)+(?:$names_re))/sg){ print $name."\n"; }