c:\@Work\Perl>perl -wMstrict -le "use Data::Dump qw(pp); ;; sub multi_cap_Eily { ;; my ($word, @words) = @_; ;; my ($dict) = map qr{ $_ }xms, join '|', @words; ;; return $word =~ m{ \G ($dict) (?= $dict* \z) }xmsg; } ;; pp multi_cap_Eily('abcd', qw(ab cd a b c d abcd)); " ("ab", "cd")