my $string = '---LL--C----LCSH-------CSHL-------LCSLH-------LCCHLSHCL----'; while ($string =~ /([CHS][LCHS]+[CHS])/xg) { print "$1\n"; } __END__ CSH CSH CSLH CCHLSHC