my @names = ( 'Daniel R Von Vanderschmidt', 'Daniel Von Vanderschmidt', 'Daniel De La Silvia', 'Daniel De Silvia', 'Daniel La Silvia', ); for my $name (@names) { my @comps = $name =~ m{(?:Von|De La|La).*|\w+}g; print "[$_]" for @comps; print "\n"; }