(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)?...