import re
regex = re.compile(r"<body[^>]+?>\s+(?<table>[\w\W]+)<\/body>", flags=re.IGNORECASE)
test_str = ("<html>\n"
"<head>\n"
"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">\n"
" <META NAME=\"Identifier-URL\" CONTENT=\"http://www.hockey.de/\">\n"
" <META NAME=\"keywords\" CONTENT=\"Hockey\">\n"
" <META NAME=\"copyright\" CONTENT=\"© hokey.de GbR\">\n"
"<title>hockey.de: hoc@key Ergebnisdienst</title>\n"
"<link REL=\"STYLESHEET\" HREF=\"/VVI-web/Include/css.asp?lokal=WHV\" type=\"text/css\">\n"
"<script src=\"/VVI-web/Include/DE-java.js\" type=\"text/javascript\"></script>\n"
"</head>\n\n"
"<body bgcolor=\"#FFFFFF\" topmargin=0 leftmargin=0 marginwidth=0 marginheight=0>\n"
"<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=806>\n\n"
"<!== TABELLE - 2 SPALTEN ================================================>\n"
"<tr><td><table border=0 cellspacing=0 cellpadding=0 width=806>\n\n"
"<!-- SPALTEN BREITE FIXIEREN -------------------------------------------->\n"
"<tr>\n"
"<td><img SRC=\"/VVI-web/Include/dummy.gif\" height=1 width=600></td>\n"
"<td><img SRC=\"/VVI-web/Include/dummy.gif\" height=1 width=6></td>\n"
"<td><img SRC=\"/VVI-web/Include/dummy.gif\" height=1 width=200></td>\n"
"</tr>\n\n"
"<!-- HAUPT SPALTE ------------------------------------------------------->\n"
"<tr><td valign=TOP><table border=0 cellspacing=0 cellpadding=0 width=600>\n"
"<!-- Seiten Titel -->\n"
" <tr height=62><td class=bghell>\n"
" <p style=\"padding-left:4px;margin-bottom:16px\"><b>Wer spielt wo?</b></p>\n"
" <p class=TTitel style=\"text-align:CENTER\">hoc@key Ergebnisdienst</p>\n"
" <tr><td>\n\n\n"
"<!-- Club, Men� -->\n"
"<tr><td align=CENTER><p class=Ueber>VfB H�ls</p></td></tr>\n"
"<tr><td align=CENTER><b>|\n\n"
" <a href=\"?lokal=WHV&bereich=WHV&saison=&club=361&status=1&design=&tza=0&cza=1&erw=,WHV-VL1D-D,WHV-VL1D-H,WHV-VL2WE-H,WHV-VL4WE-H&jug=,WHV-JV-WJA,WHV-JV-MA,WHV-JV-MB,WHV-JV-MJB,WHV-JV-KB,WHV-WE-KC-M,WHV-WE-KD-M,WHV-WE-MINIS\">Alle Ligen</a> |\n"
" \n"
" <b class=rot>Aktuelle Woche</b> |\n"
" \n"
" <a href=\"?lokal=WHV&bereich=WHV&saison=&club=361&status=3&design=&tza=0&cza=1&erw=,WHV-VL1D-D,WHV-VL1D-H,WHV-VL2WE-H,WHV-VL4WE-H&jug=,WHV-JV-WJA,WHV-JV-MA,WHV-JV-MB,WHV-JV-MJB,WHV-JV-KB,WHV-WE-KC-M,WHV-WE-KD-M,WHV-WE-MINIS\">Rest-Saison</a> |\n"
" \n"
" <a href=\"?lokal=WHV&bereich=WHV&saison=&club=361&status=4&design=&tza=0&cza=1&erw=,WHV-VL1D-D,WHV-VL1D-H,WHV-VL2WE-H,WHV-VL4WE-H&jug=,WHV-JV-WJA,WHV-JV-MA,WHV-JV-MB,WHV-JV-MJB,WHV-JV-KB,WHV-WE-KC-M,WHV-WE-KD-M,WHV-WE-MINIS\">Gesamte Saison</a> |\n"
" \n"
"</b></td></tr>\n"
"<tr><td><img src=\"/VVI-web/include/dummy.gif\" width=1 height=15></td></tr>\n\n"
"<!-- Spielplan -------------------------------------------------------->\n\n"
" \n"
"<tr><td><table border=0 width=600 cellspacing=0 cellpadding=0>\n"
" <tr>\n"
" <td><img src=\"/VVI-web/include/dummy.gif\" width=180 height=1></td>\n"
" <td><img src=\"/VVI-web/include/dummy.gif\" width=50 height=1></td>\n"
" <td><img src=\"/VVI-web/include/dummy.gif\" width=120 height=1></td>\n"
" <td><img src=\"/VVI-web/include/dummy.gif\" width=15 height=1></td>\n"
" <td><img src=\"/VVI-web/include/dummy.gif\" width=130 height=1></td>\n"
" <td><img src=\"/VVI-web/include/dummy.gif\" width=40 height=1></td>\n"
" <td><img src=\"/VVI-web/include/dummy.gif\" width=65 height=1></td>\n"
" </tr>\n\n"
" <tr height=25>\n"
" <td valign=BOTTOM colspan=5><b class=rot>Samstag, 2. M�rz 2024</b></td>\n"
" </tr>\n"
" \n"
" <tr>\n"
" <td valign=TOP class=klein></td>\n"
" <td valign=TOP class=klein>12:30</td>\n"
" <td valign=TOP class=klein>HC GMH�tte</td>\n"
" <td valign=TOP class=klein>-</td>\n"
" <td valign=TOP class=klein><a href='/VVI-web/Ergebnisdienst/Ergebnisdienst.asp?lokal=WHV&saison=HALLE23&liga=WHV-WE-KC-M&club=361'>Liga MU10</a></td>\n"
" <td valign=TOP class=klein>_:_</td>\n"
" <td valign=TOP class=klein align=RIGHT>02</td>\n"
" </tr>\n\n"
" <tr>\n"
" <td valign=TOP class=klein></td>\n"
" <td valign=TOP class=klein>14:00</td>\n"
" <td valign=TOP class=klein><a href='/VVI-web/Ergebnisdienst/Ergebnisdienst.asp?lokal=WHV&saison=HALLE23&liga=WHV-WE-KC-M&club=361'>Liga MU10</a></td>\n"
" <td valign=TOP class=klein>-</td>\n"
" <td valign=TOP class=klein>Buerscher HC</td>\n"
" <td valign=TOP class=klein>_:_</td>\n"
" <td valign=TOP class=klein align=RIGHT>05</td>\n"
" </tr>\n\n"
" <tr>\n"
" <td valign=TOP class=klein></td>\n"
" <td valign=TOP class=klein>15:00</td>\n"
" <td valign=TOP class=klein>Bielefelder TG</td>\n"
" <td valign=TOP class=klein>-</td>\n"
" <td valign=TOP class=klein><a href='/VVI-web/Ergebnisdienst/Ergebnisdienst.asp?lokal=WHV&saison=HALLE23&liga=WHV-WE-KC-M&club=361'>Liga MU10</a></td>\n"
" <td valign=TOP class=klein>_:_</td>\n"
" <td valign=TOP class=klein align=RIGHT>07</td>\n"
" </tr>\n\n"
" <tr>\n"
" <td valign=TOP class=klein></td>\n"
" <td valign=TOP class=klein>16:00</td>\n"
" <td valign=TOP class=klein>HSC 05 Osnabr�ck</td>\n"
" <td valign=TOP class=klein>-</td>\n"
" <td valign=TOP class=klein><a href='/VVI-web/Ergebnisdienst/Ergebnisdienst.asp?lokal=WHV&saison=HALLE23&liga=WHV-WE-KC-M&club=361'>Liga MU10</a></td>\n"
" <td valign=TOP class=klein>_:_</td>\n"
" <td valign=TOP class=klein align=RIGHT>09</td>\n"
" </tr>\n\n"
" <tr height=25>\n"
" <td valign=BOTTOM colspan=5><b class=rot>Sonntag, 3. M�rz 2024</b></td>\n"
" </tr>\n"
" \n"
" <tr>\n"
" <td valign=TOP class=klein></td>\n"
" <td valign=TOP class=klein>10:00</td>\n"
" <td valign=TOP class=klein>Club Raffelberg 4</td>\n"
" <td valign=TOP class=klein>-</td>\n"
" <td valign=TOP class=klein><a href='/VVI-web/Ergebnisdienst/Ergebnisdienst.asp?lokal=WHV&saison=HALLE23&liga=WHV-VL1D-D&club=361'>1.VL Damen</a></td>\n"
" <td valign=TOP class=klein>_:_</td>\n"
" <td valign=TOP class=klein align=RIGHT>29</td>\n"
" </tr>\n\n"
" <tr>\n"
" <td valign=TOP class=klein></td>\n"
" <td valign=TOP class=klein>12:00</td>\n"
" <td valign=TOP class=klein>THC M�nster 3</td>\n"
" <td valign=TOP class=klein>-</td>\n"
" <td valign=TOP class=klein><a href='/VVI-web/Ergebnisdienst/Ergebnisdienst.asp?lokal=WHV&saison=HALLE23&liga=WHV-VL2WE-H&club=361'>2.VL Herren</a></td>\n"
" <td valign=TOP class=klein>_:_</td>\n"
" <td valign=TOP class=klein align=RIGHT>29</td>\n"
" </tr>\n\n"
" <tr>\n"
" <td valign=TOP class=klein></td>\n"
" <td valign=TOP class=klein>16:00</td>\n"
" <td valign=TOP class=klein>THC M�nster 2</td>\n"
" <td valign=TOP class=klein>-</td>\n"
" <td valign=TOP class=klein><a href='/VVI-web/Ergebnisdienst/Ergebnisdienst.asp?lokal=WHV&saison=HALLE23&liga=WHV-VL1D-H&club=361'>1.VL Herren</a></td>\n"
" <td valign=TOP class=klein>_:_</td>\n"
" <td valign=TOP class=klein align=RIGHT>29</td>\n"
" </tr>\n\n"
"</table></td></tr>\n"
" \n"
"<!--------------------------------------------------------------------->\n\n\n\n"
"</table></td>\n\n"
"<!-- ZWISCHENRAUM ------------------------------------------------------->\n"
"<td> </td>\n\n"
"<!-- RECHTE SPALTE ------------------------------------------------------>\n"
"<td valign=TOP><table border=0 cellspacing=0 cellpadding=0 width=200>\n"
"<!-- Logo -->\n"
" <tr><td><table border=0 cellspacing=0 cellpadding=0 width=200>\n"
" <tr height=62>\n"
" <td align=LEFT><img src=\"/VVI-web/Ergebnisdienst/Bilder/HED-Admin.gif\" width=64 height=62></td>\n"
" <td align=CENTER><img src=\"/VVI-web/Ergebnisdienst/Bilder/HED-Ergebnis.gif\" width=64 height=62></td>\n"
" <td align=RIGHT><img src=\"/VVI-web/Ergebnisdienst/Bilder/HED-Spielplan.gif\" width=64 height=62></td>\n"
" </tr>\n"
" </table></td></tr>\n"
" <tr><td><img src=\"/VVI-web/Include/dummy.gif\" width=1 height=6></td></tr>\n\n"
"<!-- Men� -->\n"
" <tr><td class=Oberdunkel>Men�</td></tr>\n"
" <tr><td><table border=0 cellspacing=0 cellpadding=4 width=200>\n"
" <tr><td class=bgdunkel>\n"
" <a href=\"/VVI-web/Ergebnisdienst/willkommen.asp?lokal=WHV&bereich=WHV\"><b>» Info zum ...</b></a><br>\n"
" <b class=rot>» Wer spielt wo?</b><br>\n"
" <a href=\"/VVI-web/Ergebnisdienst/archiv.asp?lokal=WHV&bereich=WHV\"><b>» Saison Archiv</b></a><br>\n"
" <a href=\"/VVI-web/Ergebnisdienst/schnittstellen.asp?lokal=WHV&bereich=WHV\"><b>» Schnittstellen</b></a><br>\n"
" </td></tr>\n"
" </table></td></tr>\n"
" <tr><td><img src=\"/VVI-web/Include/dummy.gif\" width=1 height=6></td></tr>\n\n"
"<!-- Kontakt -->\n"
" <tr><td class=Oberdunkel>Kontakt</td></tr>\n"
" <tr><td><table border=0 cellspacing=0 cellpadding=4 width=200>\n"
" <tr height=40><td class=bgdunkel>\n"
" <a href=\"mailto:Webteam@hockey.de?subject=hoc@key Ergebnisdienst\"><b><img src=\"/VVI-web/Include/Mail.gif\" width=15 height=10 border=0 vspace=0 hspace=5 alt=\"Mail senden\">Webteam hockey.de</b></a>\n"
" </td></tr>\n"
" </table></td></tr>\n"
" <tr><td><img src=\"/VVI-web/Include/dummy.gif\" width=1 height=6></td></tr>\n\n"
"<!-- Apps f�r den Ergebnisdienst -->\n"
" <tr><td>\n"
"<table border=0 cellspacing=0 cellpadding=0 width=200>\n"
" <tr><td class=OberDunkel>Apps f�r den Ergebnisdienst</td></tr>\n"
" <tr><td bgcolor=#FFFFFF><img src=\"/VVI-web/Include/dummy.gif\" width=1 height=4></td></tr>\n"
" <tr><td align=CENTER class=bghell><a href=\"/VVI-web/Nachrichten/Bericht-Einzel.asp?lokal=WHV&ID=3327\" title=\"Apps f�r den hoc@key Ergebnsidienst\"><img SRC=\"/VVI-Web/Ergebnisdienst/Bilder/ErgebnisdienstApps2.jpg\" border=0 width=200 height=200></a></td></tr>\n"
"</table>\n"
" </td></tr>\n\n"
"</table></td></tr>\n\n"
"<!-- Fuss -->\n"
"<tr><td colspan=3>\n"
" <table border=0 cellspacing=0 cellpadding=0 width=806>\n"
" <tr><td colspan=2 style=\"font-size:12px\"> </td></tr>\n"
" <tr><td colspan=2><hr class=schwarz></td></tr>\n\n"
" <tr height=15>\n"
" <td align=LEFT style=\"font-size:11px; color:#666666;\"><a href=\"/VVI-web/Impressum.asp?lokal=WHV\">» Impressum</a> <a href=\"/VVI-web/datenschutz.asp?lokal=WHV\">» Datenschutz</a></td>\n"
" <td align=RIGHT style=\"font-size:11px; color:#666666;\">© 2024 • <a href=\"/VVI-web/Impressum.asp?lokal=WHV\">hockey.de</a></td>\n"
" </tr>\n"
" <tr><td colspan=2> </td></tr>\n"
"</table>\n\n"
"</td></tr>\n\n"
"</TABLE>\n"
"</body>\n"
"</html>\n\n")
match = regex.search(test_str)
if match:
print(f"Match 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