import re
regex = re.compile(r"<td><a href=\"(http:\/\/adi.sunyconnect.suny.edu:4610\/F\/\?request=\d{6,6}&func=find-b&find_code=sys&local_base=adi01pub)\">(.*?)<b><br>(.*?) \/ (.*?)<\/b>", flags=re.IGNORECASE)
test_str = ("<html>\n"
"<head> \n"
"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /> \n"
"<meta http-equiv=\"Content-Language\" content=\"en-us\" /> \n"
"<link rel=\"stylesheet\" type=\"text/css\" href=\"/app/exlibris/sny_scripts/new_items_list/new_items.css\" />\n"
"<title>Adirondack Community College Library - New Titles List</title>\n"
"<script type=\"text/javascript\" src=\"http://www.sunyconnect.suny.edu/gbs_cover_art/gbs_covers.js\"></script>\n"
"</head>\n"
"<body> \n"
"<a name=\"top\"></a>\n"
"<table width=\"90%\" align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n"
"<table id=\"Table_01\" width=\"100%\" height=\"48\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n"
" <tr>\n"
" <td>\n\n\n"
"<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\"> \n"
" <tr bgcolor=\"#006500\"> \n"
" <td class=\"topbar\" valign=\"bottom\" align=\"right\"> \n"
" <a href=\"http://www.sunyacc.edu/go.php?page=academics/library.html\" class=\"blue\" target=new title=\"link to the library \n"
"home page\"> \n"
" <img src=\"http://adi.sunyconnect.suny.edu:4610/aleph/prod/adi/alephe/www_f_eng/icon/logo.gif\" border=\"0\" alt=\"Library \n"
"Logo\" align=\"left\"></a> \n"
" </td> \n"
"<!-- <td class=\"topbar\" valign=\"middle\" align=\"center\"> \n"
" </td> -->\n"
" </tr> \n"
" </table> \n\n"
"<center><h2>\n"
"Adirondack Community College Library<br>\n"
"New Titles List\n"
"</h2></center>\n\n"
"<p>\n\n"
"<center>\n"
"<font color=\"#006500\"><b><i>\n"
"This list shows the most recent additions to the library collection. Items are in call number order. \n"
"<br>\n"
"Click on the title to get to the full catalog record.</i></b></font>\n"
"</center>\n\n"
"</td></tr></table>\n\n"
"<!-- Close table opened in header_2 -->\n"
"</table>\n"
"<table align=\"center\" cellspacing=\"20\">\n"
"<tr><td>\n"
"<a href=\"#A\">A - General Works, Encyclopedias, Dictionaries<br>\n"
"<a href=\"#B\">B - Philosophy, Psychology, Religion<br>\n"
"<a href=\"#C\">C - History of Civilization, Archeology, Chronologies,<br>\n"
" Genealogy, Biography<br>\n"
"<a href=\"#D\">D - History: General and World History<br>\n"
"<a href=\"#E\">E - History: America<br>\n"
"<a href=\"#F\">F - History: America - Regional, State<br>\n"
"<a href=\"#G\">G - Geography, Environmental Sciences, Anthropology,<br>\n"
" Folklore, Recreation, Sports<br>\n"
"<a href=\"#H\">H - Social Sciences<br>\n"
"<a href=\"#J\">J - Political Science<br>\n"
"<a href=\"#K\">K - Law<br>\n"
"</td><td>\n"
"<a href=\"#L\">L - Education <br>\n"
"<a href=\"#M\">M - Music, books about Music<br>\n"
"<a href=\"#N\">N - Fine Arts<br>\n"
"<a href=\"#P\">P - Language and Literature<br>\n"
"<a href=\"#Q\">Q - Science<br>\n"
"<a href=\"#R\">R - Medicine, Nursing, Pharmacology, Psychiatry<br>\n"
"<a href=\"#S\">S - Agriculture<br>\n"
"<a href=\"#T\">T - Technology, Engineering, Aeronautics,<br>\n"
" Photography, Handicrafts<br>\n"
"<a href=\"#U\">U - Military Science<br>\n"
"<a href=\"#V\">V - Naval Science<br>\n"
"<a href=\"#Z\">Z - Library Science, Bibliography<br>\n"
"</td></tr>\n"
"</table>\n\n"
"<table width=\"75%\" align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td>\n"
"<h4>LC Call Number:</h4>\n"
"<font color=\"#000000\" size=\"1\"><a href=\"http://www.loc.gov/catdir/cpso/lcco/lcco.html\" target=\"_new\">\n"
"Guide to LC Classification</a> - (click for more information on the call letters for a subject)\n"
"</font></p>\n\n"
"[<b><a HREF=\"#A\">A</a></b>] [<b><a HREF=\"#B\">B</a></b>]\n"
"[<b><a HREF=\"#C\">C</a></b>] [<b><a HREF=\"#D\">D</a></b>] [<b><a HREF=\"#E\">E</a></b>]\n"
"[<b><a HREF=\"#F\">F</a></b>] [<b><a HREF=\"#G\">G</a></b>] [<b><a HREF=\"#H\">H</a></b>]\n"
"[<b><a HREF=\"#J\">J</a></b>] [<b><a HREF=\"#K\">K</a></b>]\n"
"[<b><a HREF=\"#L\">L</a></b>] [<b><a HREF=\"#M\">M</a></b>] [<b><a HREF=\"#N\">N</a></b>]\n"
"[<b><a HREF=\"#P\">P</a></b>] [<b><a HREF=\"#Q\">Q</a></b>]\n"
"[<b><a HREF=\"#R\">R</a></b>] [<b><a HREF=\"#S\">S</a></b>] [<b><a HREF=\"#T\">T</a></b>]\n"
"[<b><a HREF=\"#U\">U</a></b>] [<b><a HREF=\"#V\">V</a></b>] [<b><a HREF=\"#Z\">Z</a></b>]\n"
"<br>\n"
"</td></tr></table>\n\n"
"<table width=80%><tr><td> </td></tr><tr><td align=right>\n"
"<font size=1>Last updated: Mon 01-25-2016</font>\n"
"</td></tr></table>\n"
"<table width=90% align=center border=0 cellpadding=0 cellspacing=0>\n"
"<tr><td> <A NAME=\"A\"> </A><b><font size=+3>A</font></b></a></td><td> </td></tr>\n"
"<tr><td> <A NAME=\"B\"> </A><b><font size=+3>B</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td> </td></tr>\n"
"<tr><td> </td><td><a href=\"http://adi.sunyconnect.suny.edu:4610/F/?request=233654&func=find-b&find_code=sys&local_base=adi01pub\">BX1751.3 .C377 2015 Adirondack Community College Circulating<b><br>The Catholic Church / Michael Ruth, book editor.</b></a></td></tr><tr><td> </td></tr>\n"
"<tr><td> <A NAME=\"C\"> </A><b><font size=+3>C</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td> </td></tr>\n"
"<tr><td> <A NAME=\"D\"> </A><b><font size=+3>D</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td> </td></tr>\n"
"<tr><td> </td><td><a href=\"http://adi.sunyconnect.suny.edu:4610/F/?request=233656&func=find-b&find_code=sys&local_base=adi01pub\">DK508.852 .U39 2016 Adirondack Community College Circulating<b><br>Ukraine / Michael Ruth, book editor.</b></a></td></tr><tr><td> </td></tr>\n"
"<tr><td> <A NAME=\"E\"> </A><b><font size=+3>E</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td> </td></tr>\n"
"<tr><td> <A NAME=\"F\"> </A><b><font size=+3>F</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td> </td></tr>\n"
"<tr><td> <A NAME=\"G\"> </A><b><font size=+3>G</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td> </td></tr>\n"
"<tr><td> <A NAME=\"H\"> </A><b><font size=+3>H</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td> </td></tr>\n"
"<tr><td> </td><td><a href=\"http://adi.sunyconnect.suny.edu:4610/F/?request=233657&func=find-b&find_code=sys&local_base=adi01pub\">HC110.I5 I477 2016 Adirondack Community College Circulating<b><br>Income inequality / Noël Merino, Book Editor.</b></a></td></tr><tr><td> </td></tr>\n"
"<tr><td> </td><td><a href=\"http://adi.sunyconnect.suny.edu:4610/F/?request=233652&func=find-b&find_code=sys&local_base=adi01pub\">HQ766 .B4794 2016 Adirondack Community College Circulating<b><br>Birth control / Jack Lasky, book editor.</b></a></td></tr><tr><td> </td></tr>\n"
"<tr><td> </td><td><a href=\"http://adi.sunyconnect.suny.edu:4610/F/?request=233655&func=find-b&find_code=sys&local_base=adi01pub\">HV9471 .A49 2016 Adirondack Community College Circulating<b><br>America's prisons / Jack Lasky, book editor.</b></a></td></tr><tr><td> </td></tr>\n"
"<tr><td> <A NAME=\"J\"> </A><b><font size=+3>J</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td> </td></tr>\n"
"<tr><td> <A NAME=\"K\"> </A><b><font size=+3>K</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td> </td></tr>\n"
"<tr><td> <A NAME=\"L\"> </A><b><font size=+3>L</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td> </td></tr>\n"
"<tr><td> <A NAME=\"M\"> </A><b><font size=+3>M</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td> </td></tr>\n"
"<tr><td> <A NAME=\"N\"> </A><b><font size=+3>N</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td> </td></tr>\n"
"<tr><td> <A NAME=\"P\"> </A><b><font size=+3>P</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td> </td></tr>\n"
"<tr><td> </td><td><a href=\"http://adi.sunyconnect.suny.edu:4610/F/?request=233650&func=find-b&find_code=sys&local_base=adi01pub\">PC2129.E5 R59 2009 Adirondack Community College Circulating<b><br>Easy French step-by-step : master high-frequency grammar for French proficiency--fast! / Myrna Bell</b></a></td></tr><tr><td> </td></tr>\n"
"<tr><td> </td><td><a href=\"http://adi.sunyconnect.suny.edu:4610/F/?request=233648&func=find-b&find_code=sys&local_base=adi01pub\">PF3271 .H39 2011 Adirondack Community College Circulating<b><br>German verb drills / Astrid Henschel.</b></a></td></tr><tr><td> </td></tr>\n"
"<tr><td> </td><td><a href=\"http://adi.sunyconnect.suny.edu:4610/F/?request=233658&func=find-b&find_code=sys&local_base=adi01pub\">PN1997.2 .I54 2015 Adirondack Community College DVD<b><br>Infinitely polar bear / a Sony Pictures Classics release ; Paper Street Films and Park Pictures pres</b></a></td></tr><tr><td> </td></tr>\n"
"<tr><td> </td><td><a href=\"http://adi.sunyconnect.suny.edu:4610/F/?request=233649&func=find-b&find_code=sys&local_base=adi01pub\">PR830.W6 P45 2014 Adirondack Community College Circulating<b><br>Women's fiction : from 1945 to today / Deborah Philips.</b></a></td></tr><tr><td> </td></tr>\n"
"<tr><td> <A NAME=\"Q\"> </A><b><font size=+3>Q</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td> </td></tr>\n"
"<tr><td> <A NAME=\"R\"> </A><b><font size=+3>R</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td> </td></tr>\n"
"<tr><td> </td><td><a href=\"http://adi.sunyconnect.suny.edu:4610/F/?request=233647&func=find-b&find_code=sys&local_base=adi01pub\">RB115 .B823 2016 Adirondack Community College Reference<b><br>2016 ICD-10-CM for physicians professional edition / Carol J. Buck.</b></a></td></tr><tr><td> </td></tr>\n"
"<tr><td> <A NAME=\"S\"> </A><b><font size=+3>S</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td> </td></tr>\n"
"<tr><td> </td><td><a href=\"http://adi.sunyconnect.suny.edu:4610/F/?request=233651&func=find-b&find_code=sys&local_base=adi01pub\">S596.7 .V57 2015 Adirondack Community College Circulating<b><br>Visual soil evaluation : realizing potential crop production with minimum environmental impact / edi</b></a></td></tr><tr><td> </td></tr>\n"
"<tr><td> <A NAME=\"T\"> </A><b><font size=+3>T</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td> </td></tr>\n"
"<tr><td> </td><td><a href=\"http://adi.sunyconnect.suny.edu:4610/F/?request=233653&func=find-b&find_code=sys&local_base=adi01pub\">TK5105.8855 .I58 2016 Adirondack Community College Circulating<b><br>The Internet / Jack Lasky, Book Editor.</b></a></td></tr><tr><td> </td></tr>\n"
"<tr><td> <A NAME=\"U\"> </A><b><font size=+3>U</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td> </td></tr>\n"
"<tr><td> <A NAME=\"V\"> </A><b><font size=+3>V</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td> </td></tr>\n"
"<tr><td> <A NAME=\"Z\"> </A><b><font size=+3>Z</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td> </td></tr>\n"
"</table>\n"
"</body>\n"
"</html>\n")
matches = regex.finditer(test_str)
for match_num, match in enumerate(matches, start=1):
print(f"Match {match_num} was found at {match.start()}-{match.end()}: {match.group()}")
for group_num, group in enumerate(match.groups(), start=1):
print(f"Group {group_num} found at {match.start(group_num)}-{match.end(group_num)}: {group}")
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 Python, please visit: https://docs.python.org/3/library/re.html