use strict;
my $str = 'Hello, view this pdf [PDF=\'hello.pdf\']
and then view this PDF [PDF=\'goodmorning.pdf\']';
my $regex = qr/(.*?)(\[\w{3}=\')(\w+\.\w+)(\'\])(.*?)(\[\w{3}=\')(\w+\.\w+).*/sp;
my $subst = '$1 <object data=\\"https://myurl.com/media/$3\\" class=\\"pdf-shortcode-iframe" type=\\"application/pdf\\"> <iframe class=\\"pdf-shortcode-iframe\\" src=\\"https://docs.google.com/viewer?url=https://myurl.com/media/$3&embedded=true\\"></iframe> </object>$5 <object data=\\"https://myurl.com/media/$7\\" class=\\"pdf-shortcode-iframe\\" type=\\"application/pdf\\"> <iframe class=\\"pdf-shortcode-iframe\\" src=\\"https://docs.google.com/viewer? url=https://myurl.com/media/$3&embedded=true"></iframe> </object>';
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