my $string = '00110011111110111111111111111110'; my $str_to_replace; for ($string=~/(1+)/g) { my $temp = $1; $str_to_replace = $temp if length($tmp) > length($str_to_replace); } if ($str_to_replace) { my $repl = '2' x length($str_to_replace); $string =~ s/$str_to_replace/$repl/; }