c:\@Work\Perl\monks>perl -wMstrict -le "my @lexi_short = qw(numeric sociobio social); ;; my ($rx_lexi_short) = map qr{ (?i) \A (?: $_) .+ }xms, join ' | ', map quotemeta, reverse sort @lexi_short ; ;; printf '%s ', $_ for grep /$rx_lexi_short/, qw(socialist sociobiologist numerical NUMERICIST), qw(social antisocial numeric bio cia) ; " socialist sociobiologist numerical NUMERICIST