import re
regex = re.compile(r"((?:\u23F1.\W|[\d]+)(\'|\s|’|‘)*(/|\||\[|-)+)|((/|\||\[)+(\s)*(?:\u23F1)*(\s)*[\d]{1,2}[^x](\s)*(min|mi|m)*)", flags=re.MULTILINE)
test_str = ("((?:\\u23F1.\\W|[\\d]+)(\\'|\\s|’|‘)*(/|\\||\\[|-)+)|((/|\\||\\[)+(\\s)*(?:\\u23F1)*(\\s)*[\\d]{1,2}[^x](\\s)*(min|mi|m)*)\n\n"
"2ºT | ⏱ 48 min: cruzamento de Raphael Veiga e Felipe Melo cabeceia para fora. \\n\\n#PALxCHA | 3x1\\n#AvantiPalestra \\n#JuntosNoBrasileirão\n"
"2ºT | ⏱ 47 min: amarelo para Raphael Veiga. \\n\\n#PALxCHA | 3x1\\n#AvantiPalestra \n"
"2ºT | ⏱ 45 min: mais 4 minutos de acréscimos. \\n\\n#PALxCHA | 3x1\\n#AvantiPalestra \n"
"2ºT | ⏱ 42 min: cruzamento preciso de Luan do meio-campo e Rony cabeceia para fora. \\n\\n#PALxCHA | 3x1\\n#AvantiPalestra \\n#JuntosNoBrasileirão\n"
"2ºT | ⏱ 28 min: substituições 🔄\\n\\n🔼 Entram: L. Esteves e F. Melo \\n🔽 Saem: Wesley e G. Scarpa \n"
"2ºT | ⏱ 26 min: amarelo para Wesley. \\n\\n#PALxCHA | 3x1\\n#AvantiPalestra \\n#JuntosNoBrasileirão\n"
"Com a saída de Luiz Adriano, Willian passa a ser o capitão do time em campo ©️\\n\\n#PALxCHA | 3x1\\n#AvantiPalestra \\n#JuntosNoBrasileirão https://t.co/PbpAHZH68u\n"
"2ºT | ⏱ 25 min: substituição 🔄\\n\\n🔼 Entra: Willian \\n🔽 Sai: Luiz Adriano \\n\\n#PALxCHA | 3x1\\n#AvantiPalestra \\n#JuntosNoBrasileirão\n"
"2ºT | ⏱ 21 min: após bate e rebate, Zé Rafael fica com a bola e manda por cima do gol. \\n\\n#PALxCHA | 3x1\\n#AvantiPalestra \\n#JuntosNoBrasileirão\n"
"2ºT | ⏱ 9 min: Palmeiras 3x1 Chapecoense. \\n\\n#AvantiPalestra #PALxCHA\\n#JuntosNoBrasileirão\n"
"2ºT | ⏱ 3 min: jogada ensaiada em cobrança de escanteio: Gustavo Scarpa cruza na entrada da área para 45' | 2T | +6. Jogo vai aos 51. \\n\\nABC Futebol Clube 3x0 Chapecoense\\n \\n#VamosChape \n"
"43' | 2T | Entra Felipe Santana no lugar de Matheus Ribeiro. \\n\\nABC Futebol Clube 3x0 Chapecoense\\n \n"
"45' | 2T | +4. Jogo vai aos 49. \\n\\nPalmeiras 3x1 Chapecoense\\n \\n#VamosChape #OrgulhoDeSerChape\n"
"35' | 2T | Muda a Chape:\\n\\nEntram ➡️ Bruno Silva e Geuvânio\\nSaem ⬅️Fabinho e Anselmo Ramon \n"
"32' | 2T | Adversário cobra falta, mas a bola desvia na barreira e sai em escanteio. \\n\\nPalmeiras 3x1\n"
"24' | 2T | QUAAAAAAAASEEEEEEEEEE! \\n\\nRavanelli manda no segundo pau e Anselmo Ramon finaliza de \n"
"13' | 2T | Ravanelli tocou para Matheus Ribeiro, que invadiu a área a finalizou na rede, mas pelo lado\n"
"7' | 2T | Falta para a Chapecoense na meia-lua da grande área. \\n\\nPalmeiras 3x0 Chapecoense\\n \n"
"7' | 1T | Gol do Palmeiras. \\n\\nPalmeiras 1x0 Chapecoense\\n \\n#VamosChape #OrgulhoDeSerChape\n"
"2' | 1T | UHHHHHHHHHHHHHHHHHHH!\\n\\nFabinho fica cara a cara com Jailson e finaliza, obrigando grande \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