use warnings; use strict; my $foo = 'Fsih my test variable is fsihd or is it gfsih or gfsihd fsih'; my $i = 2; # Replace the 3rd $foo =~ s/((?:fsih.*?){$i})fsih/$1fish/i or warn "Not found"; print "Foo = $foo\n";