use warnings; use strict; my $dna = 'xxxxxxpecbcbccrlxxxxxxpeeeerlxxxxxplxxxxxPeRLxxxx'; my $re = qr/p.*?l/i; while ( $dna =~ m[($re)]g ) { my $beg = index( $dna, $1 ); my $len = length($1); print join " " => $1, $beg, $beg + ($len -1), $/; # updated } #### pecbcbccrl 6 15 peeeerl 22 28 pl 34 35 PeRL 41 44