$regexp = qr/a(b+)c/; $subst = 'c$1a'; my @a = $string =~ $regexp; $subst =~ s/\$(\d)/$a[$1-1]/ge; $string =~ s/$regexp/$subst/;