my $string = '---LL--C----LCSH-------CSHL-------LCSLH-------LCCHLSHCL----'; @patterns = $string =~ /([^-L][LCSH]*[^-L])/g; print join ', ', @patterns;