(concatenated|concatenate|catenated|recommend|catenate|commend|someone|working|catena|module|could|enate|split|words|perl|cate|king|mend|some|word|work|ate|cat|con|daw|end|eon|ere|kin|let|lit|men|mod|one|per|rec|som|ted|ten|at|aw|ed|en|er|et|in|it|ki|li|me|mm|mo|na|ne|od|om|on|or|os|pe|re|so|to|wo|a)?
... repeat 11 (or more) times.
####
#! perl -slw
use strict;
my @w = do{ local @ARGV = 'words.txt'; <> };
chomp @w;
my $s = 'couldsomeonerecommendaworkingperlmoduletosplitconcatenatedwords';
my @subset = grep{ $s =~ /$_/ } 'a', 'perl', @w;
my $re1 = join '|', sort{ length( $b ) <=> length( $a ) }@subset;
my $re2 = "($re1)?" x 11;
print for grep defined(), $s =~ /^$re2$/;
####
(longestword|longword|shorter|short)?(longestword|longword|shorter|short)?(longestword|longword|shorter|short)?...