#! perl -slw use strict; my $re = '([^X]+)X*' . '(?:([^X]+)X*)?' x 100; $re = qr[$re]; my $screen = "ATCGATCGXXXXXATCGATXXXACTGCTACGGTACXXXAATTATXGCGCGXXT"; $screen =~ $re; print for @-[ 1 .. $#- ]; __END__ P:\test>test2 0 13 22 38 45 52