use strict;
my $str = ' <table cellpadding="2" cellspacing="1" style="width: 100%; border: 0px;">
<tr style="background-color: #CCCCCC;">
<th colspan="5">Available Releases</th>
</tr>
<tr>
<th valign="top" bgcolor="#ffffff">Version</th>
<th valign="top" bgcolor="#ffffff">State</th>
<th valign="top" bgcolor="#ffffff">Release Date</th>
<th valign="top" bgcolor="#ffffff">Downloads</th>
<th valign="top" bgcolor="#ffffff"> </th>
</tr>
<tr>
<th valign="top" bgcolor="#cccccc"><a href="/package/APCu/5.1.2">5.1.2</a></th>
<td valign="top" bgcolor="#e8e8e8">stable</td>
<td valign="top" bgcolor="#e8e8e8">2015-12-07</td>
<td valign="top" bgcolor="#e8e8e8"><a href="/get/apcu-5.1.2.tgz">apcu-5.1.2.tgz</a> (105.7kB)</td>
<td valign="top" bgcolor="#e8e8e8"><small>[<a href="/package-changelog.php?package=APCu&release=5.1.2">Changelog</a>]</small></td>
</tr>
<tr>
<th valign="top" bgcolor="#cccccc"><a href="/package/APCu/4.0.10">4.0.10</a></th>
<td valign="top" bgcolor="#e8e8e8">stable</td>
<td valign="top" bgcolor="#e8e8e8">2015-12-07</td>
<td valign="top" bgcolor="#e8e8e8"><a href="/get/apcu-4.0.10.tgz">apcu-4.0.10.tgz</a> (116.5kB) <a href="/package/APCu/4.0.10/windows"><img src="/gifs/windows-icon.png" />DLL</a></td>
<td valign="top" bgcolor="#e8e8e8"><small>[<a href="/package-changelog.php?package=APCu&release=4.0.10">Changelog</a>]</small></td>
</tr>
<tr>
<th valign="top" bgcolor="#cccccc"><a href="/package/APCu/5.1.0">5.1.0</a></th>
<td valign="top" bgcolor="#e8e8e8">beta</td>
<td valign="top" bgcolor="#e8e8e8">2015-11-21</td>
<td valign="top" bgcolor="#e8e8e8"><a href="/get/apcu-5.1.0.tgz">apcu-5.1.0.tgz</a> (106.8kB)</td>
<td valign="top" bgcolor="#e8e8e8"><small>[<a href="/package-changelog.php?package=APCu&release=5.1.0">Changelog</a>]</small></td>
</tr>
<tr>
<th valign="top" bgcolor="#cccccc"><a href="/package/APCu/4.0.8">4.0.8</a></th>
<td valign="top" bgcolor="#e8e8e8">stable</td>
<td valign="top" bgcolor="#e8e8e8">2015-11-20</td>
<td valign="top" bgcolor="#e8e8e8"><a href="/get/apcu-4.0.8.tgz">apcu-4.0.8.tgz</a> (116.3kB) <a href="/package/APCu/4.0.8/windows"><img src="/gifs/windows-icon.png" />DLL</a></td>
<td valign="top" bgcolor="#e8e8e8"><small>[<a href="/package-changelog.php?package=APCu&release=4.0.8">Changelog</a>]</small></td>
</tr>
<tr>
<th valign="top" bgcolor="#cccccc"><a href="/package/APCu/4.0.7">4.0.7</a></th>
<td valign="top" bgcolor="#e8e8e8">beta</td>
<td valign="top" bgcolor="#e8e8e8">2014-10-11</td>
<td valign="top" bgcolor="#e8e8e8"><a href="/get/apcu-4.0.7.tgz">apcu-4.0.7.tgz</a> (115.9kB) <a href="/package/APCu/4.0.7/windows"><img src="/gifs/windows-icon.png" />DLL</a></td>
<td valign="top" bgcolor="#e8e8e8"><small>[<a href="/package-changelog.php?package=APCu&release=4.0.7">Changelog</a>]</small></td>
</tr>
<tr>
<th valign="top" bgcolor="#cccccc"><a href="/package/APCu/4.0.6">4.0.6</a></th>
<td valign="top" bgcolor="#e8e8e8">beta</td>
<td valign="top" bgcolor="#e8e8e8">2014-06-12</td>
<td valign="top" bgcolor="#e8e8e8"><a href="/get/apcu-4.0.6.tgz">apcu-4.0.6.tgz</a> (116.9kB) <a href="/package/APCu/4.0.6/windows"><img src="/gifs/windows-icon.png" />DLL</a></td>
<td valign="top" bgcolor="#e8e8e8"><small>[<a href="/package-changelog.php?package=APCu&release=4.0.6">Changelog</a>]</small></td>
</tr>
<tr>
<th valign="top" bgcolor="#cccccc"><a href="/package/APCu/4.0.5">4.0.5</a></th>
<td valign="top" bgcolor="#e8e8e8">beta</td>
<td valign="top" bgcolor="#e8e8e8">2014-06-11</td>
<td valign="top" bgcolor="#e8e8e8"><a href="/get/apcu-4.0.5.tgz">apcu-4.0.5.tgz</a> (116.9kB) <a href="/package/APCu/4.0.5/windows"><img src="/gifs/windows-icon.png" />DLL</a></td>
<td valign="top" bgcolor="#e8e8e8"><small>[<a href="/package-changelog.php?package=APCu&release=4.0.5">Changelog</a>]</small></td>
</tr>
<tr>
<th valign="top" bgcolor="#cccccc"><a href="/package/APCu/4.0.4">4.0.4</a></th>
<td valign="top" bgcolor="#e8e8e8">beta</td>
<td valign="top" bgcolor="#e8e8e8">2014-03-01</td>
<td valign="top" bgcolor="#e8e8e8"><a href="/get/apcu-4.0.4.tgz">apcu-4.0.4.tgz</a> (116.9kB) <a href="/package/APCu/4.0.4/windows"><img src="/gifs/windows-icon.png" />DLL</a></td>
<td valign="top" bgcolor="#e8e8e8"><small>[<a href="/package-changelog.php?package=APCu&release=4.0.4">Changelog</a>]</small></td>
</tr>
<tr>
<th valign="top" bgcolor="#cccccc"><a href="/package/APCu/4.0.3">4.0.3</a></th>
<td valign="top" bgcolor="#e8e8e8">beta</td>
<td valign="top" bgcolor="#e8e8e8">2014-01-27</td>
<td valign="top" bgcolor="#e8e8e8"><a href="/get/apcu-4.0.3.tgz">apcu-4.0.3.tgz</a> (116.9kB) <a href="/package/APCu/4.0.3/windows"><img src="/gifs/windows-icon.png" />DLL</a></td>
<td valign="top" bgcolor="#e8e8e8"><small>[<a href="/package-changelog.php?package=APCu&release=4.0.3">Changelog</a>]</small></td>
</tr>
<tr>
<th valign="top" bgcolor="#cccccc"><a href="/package/APCu/4.0.2">4.0.2</a></th>
<td valign="top" bgcolor="#e8e8e8">beta</td>
<td valign="top" bgcolor="#e8e8e8">2013-09-14</td>
<td valign="top" bgcolor="#e8e8e8"><a href="/get/apcu-4.0.2.tgz">apcu-4.0.2.tgz</a> (117.5kB) <a href="/package/APCu/4.0.2/windows"><img src="/gifs/windows-icon.png" />DLL</a></td>
<td valign="top" bgcolor="#e8e8e8"><small>[<a href="/package-changelog.php?package=APCu&release=4.0.2">Changelog</a>]</small></td>
</tr>
<tr>
<th valign="top" bgcolor="#cccccc"><a href="/package/APCu/4.0.1">4.0.1</a></th>
<td valign="top" bgcolor="#e8e8e8">beta</td>
<td valign="top" bgcolor="#e8e8e8">2013-04-30</td>
<td valign="top" bgcolor="#e8e8e8"><a href="/get/apcu-4.0.1.tgz">apcu-4.0.1.tgz</a> (103.4kB) <a href="/package/APCu/4.0.1/windows"><img src="/gifs/windows-icon.png" />DLL</a></td>
<td valign="top" bgcolor="#e8e8e8"><small>[<a href="/package-changelog.php?package=APCu&release=4.0.1">Changelog</a>]</small></td>
</tr>
<tr>
<th valign="top" bgcolor="#cccccc"><a href="/package/APCu/4.0.0">4.0.0</a></th>
<td valign="top" bgcolor="#e8e8e8">beta</td>
<td valign="top" bgcolor="#e8e8e8">2013-03-26</td>
<td valign="top" bgcolor="#e8e8e8"><a href="/get/apcu-4.0.0.tgz">apcu-4.0.0.tgz</a> (101.8kB)</td>
<td valign="top" bgcolor="#e8e8e8"><small>[<a href="/package-changelog.php?package=APCu&release=4.0.0">Changelog</a>]</small></td>
</tr>
</table>';
my $regex = qr/<th(?:| | .*?)>\s*<a(?:| | .*?)>\s*([\d.]+)\s*</a>\s*</th>\s*<td(?:| | .*?)>\s*stable\s*</td>/p;
if ( $str =~ /$regex/ ) {
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