use strict;
my $str = '<p><a href="https://youtu.be/GuF_h5NfrOw" rel="nofollow noreferrer">This YouTube video describes the process to add spaces between icons in the DOCK ribbon on your Mac OS Big Sur, Mojave, ... 🍽📏</a></p>
<p><a href="https://www.youtube.com/watch?v=SnPsJM1qCVk" rel="nofollow noreferrer">https://www.youtube.com/watch?v=SnPsJM1qCVk</a>
<a href="https://www.youtube.com/watch?v=SnPsJM1qCVk&feature=youtu.be" rel="nofollow noreferrer">https://www.youtube.com/watch?v=SnPsJM1qCVk&feature=youtu.be</a></p>
<p>wa365bet situs slot terbaik terbesar dan terpercaya</p>
<p><a href="https://www.youtube.com/watch?v=9jK-NcRmVcw" rel="nofollow noreferrer">https://www.youtube.com/watch?v=9jK-NcRmVcw</a></p>
<p>look at this, this will help you</p>';
my $regex = qr/^\s*<p>\s*(?:</?\w+/?>\s*)*<a href=\"(?:(?:[a-z]+:)?//(?:[^\" >/.]*\.)*(?:youtube\.com|youtu\.be)[/\"])\W*(?![\W\w]*?</(?:code|blockquote)>)(?#Separate start with youtube watch; lower TP rate, but most TP are not otherwise detected)/mp;
if ( $str =~ /$regex/g ) {
print "Whole match is ${^MATCH} and its start/end positions can be obtained via \$-[0] and \$+[0]\n";
# print "Capture Group 1 is $1 and its start/end positions can be obtained via \$-[1] and \$+[1]\n";
# print "Capture Group 2 is $2 ... and so on\n";
}
# ${^POSTMATCH} and ${^PREMATCH} are also available with the use of '/p'
# Named capture groups can be called via $+{name}
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