$string = 'abcdefghijklfghijklabcdefg'; $c = 0; while ( ++$c && $string =~ m/(e(.*?fg){$c})/ ) { print "$1\n"; } __OUTPUT__ efg efghijklfg efghijklfghijklabcdefg