use strict; my $seq = '------------GGATCC________________GGATCC=============GGATCC+++++++++'; my @splits = (0); push @splits, pos $seq while $seq =~ /(?=GGATCC)/ig; push @splits, length $seq; for my $index (0 .. $#splits) { my $width = $splits[$index + 1] - $splits[$index]; print substr ($seq, $splits[$index], $width), "\n"; }