use 5.010; use strict; use warnings; my $string = "(1,2,3) XXX (1,2,3)"; my $open = -1; $open = index $string, "(", $open + 1 for 1 .. 2; my $close = index $string, ")", $open + 1; substr($string, $open + 1, $close - $open - 1) =~ s/(\d+)/'$1'/g; say $string; __END__ (1,2,3) XXX ('1','2','3')