use strict;
my $str = '(1)Jorge Alberto Gómez Prada = (2)Jorge Gómez = (3)Jorge A Gómez = (4)Jorge A. Gómez P.
(5)(Jorge GOMEZ P.a) ... (6)Alberto jorge GÓMEZ (7)Jorge /Gómez
(8)>>Jorge A
Gómez P<< (9)Jorge Gómez Pradas (10)JJorge Gómez (11) Luis Jorge Gómeza';
my $regex = qr/(?# Patrón de nombre multivariado)
\bJorge\s+((Alberto|A\.?)\s+)?/?(?P<Apellido>G[óo]mez)(\s+(Prada|P\.?))?\b/ixp;
my $subst = 'Amparo \\g<Apellido>';
my $result = $str =~ s/$regex/$subst/rg;
print "The result of the substitution is' $result\n";
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Perl, please visit: http://perldoc.perl.org/perlre.html