import re
regex = re.compile(r"(?:(?<=^)|(?<=\D))((00|\+)?55(\s|\.|-)*)?((\()?0?\d{2}(?(5)\)|)(\s|\.|-)*)?(9(\s|\.|-)*)?\d{4}(\s|\.|-)*\d{4}(?=\D|$)", flags=re.MULTILINE)
test_str = ("98993132\n"
"9899-3132\n"
"9899.3132\n"
"9899 3132\n"
"7198993132\n"
"719899-3132\n"
"719899.3132\n"
"719899 3132\n"
"71 98993132\n"
"71 9899-3132\n"
"71 9899.3132\n"
"71 9899 3132\n"
"071 98993132\n"
"071 9899-3132\n"
"071 9899.3132\n"
"071 9899 3132\n"
"(71)98993132\n"
"(71)9899-3132\n"
"(71)9899.3132\n"
"(71)9899 3132\n"
"(71) 98993132\n"
"(71) 9899-3132\n"
"(71) 9899.3132\n"
"(071) 9899 3132\n"
"(071) 98993132\n"
"(071) 9899-3132\n"
"(071) 9899.3132\n"
"(071) 9899 3132\n"
"557198993132\n"
"55719899-3132\n"
"55719899.3132\n"
"55719899 3132\n"
"5571 98993132\n"
"5571 9899-3132\n"
"5571 9899.3132\n"
"5571 9899 3132\n"
"55071 98993132\n"
"55071 9899-3132\n"
"55071 9899.3132\n"
"55071 9899 3132\n"
"55(71)98993132\n"
"55(71)9899-3132\n"
"55(71)9899.3132\n"
"55(71)9899 3132\n"
"55(71) 98993132\n"
"55(71) 9899-3132\n"
"55(71) 9899.3132\n"
"55(071) 9899 3132\n"
"55(071) 98993132\n"
"55(071) 9899-3132\n"
"55(071) 9899.3132\n"
"55(071) 9899 3132\n"
"55 7198993132\n"
"55 719899-3132\n"
"55 719899.3132\n"
"55 719899 3132\n"
"55 71 98993132\n"
"55 71 9899-3132\n"
"55 71 9899.3132\n"
"55 71 9899 3132\n"
"55 071 98993132\n"
"55 071 9899-3132\n"
"55 071 9899.3132\n"
"55 071 9899 3132\n"
"55 (71)98993132\n"
"55 (71)9899-3132\n"
"55 (71)9899.3132\n"
"55 (71)9899 3132\n"
"55 (71) 98993132\n"
"55 (71) 9899-3132\n"
"55 (71) 9899.3132\n"
"55 (071) 9899 3132\n"
"55 (071) 98993132\n"
"55 (071) 9899-3132\n"
"55 (071) 9899.3132\n"
"55 (071) 9899 3132\n"
"+557198993132\n"
"+55719899-3132\n"
"+55719899.3132\n"
"+55719899 3132\n"
"+5571 98993132\n"
"+5571 9899-3132\n"
"+5571 9899.3132\n"
"+5571 9899 3132\n"
"+55071 98993132\n"
"+55071 9899-3132\n"
"+55071 9899.3132\n"
"+55071 9899 3132\n"
"+55(71)98993132\n"
"+55(71)9899-3132\n"
"+55(71)9899.3132\n"
"+55(71)9899 3132\n"
"+55(71) 98993132\n"
"+55(71) 9899-3132\n"
"+55(71) 9899.3132\n"
"+55(071) 9899 3132\n"
"+55(071) 98993132\n"
"+55(071) 9899-3132\n"
"+55(071) 9899.3132\n"
"+55(071) 9899 3132\n"
"+55 7198993132\n"
"+55 719899-3132\n"
"+55 719899.3132\n"
"+55 719899 3132\n"
"+55 71 98993132\n"
"+55 71 9899-3132\n"
"+55 71 9899.3132\n"
"+55 71 9899 3132\n"
"+55 071 98993132\n"
"+55 071 9899-3132\n"
"+55 071 9899.3132\n"
"+55 071 9899 3132\n"
"+55 (71)98993132\n"
"+55 (71)9899-3132\n"
"+55 (71)9899.3132\n"
"+55 (71)9899 3132\n"
"+55 (71) 98993132\n"
"+55 (71) 9899-3132\n"
"+55 (71) 9899.3132\n"
"+55 (071) 9899 3132\n"
"+55 (071) 98993132\n"
"+55 (071) 9899-3132\n"
"+55 (071) 9899.3132\n"
"+55 (071) 9899 3132\n"
"998993132\n"
"99899-3132\n"
"99899.3132\n"
"99899 3132\n"
"71998993132\n"
"7199899-3132\n"
"7199899.3132\n"
"7199899 3132\n"
"71 998993132\n"
"71 99899-3132\n"
"71 99899.3132\n"
"71 99899 3132\n"
"071 998993132\n"
"071 99899-3132\n"
"071 99899.3132\n"
"071 99899 3132\n"
"(71)998993132\n"
"(71)99899-3132\n"
"(71)99899.3132\n"
"(71)99899 3132\n"
"(71) 998993132\n"
"(71) 99899-3132\n"
"(71) 99899.3132\n"
"(071) 99899 3132\n"
"(071) 998993132\n"
"(071) 99899-3132\n"
"(071) 99899.3132\n"
"(071) 99899 3132\n"
"5571998993132\n"
"557199899-3132\n"
"557199899.3132\n"
"557199899 3132\n"
"5571 998993132\n"
"5571 99899-3132\n"
"5571 99899.3132\n"
"5571 99899 3132\n"
"55071 998993132\n"
"55071 99899-3132\n"
"55071 99899.3132\n"
"55071 99899 3132\n"
"55(71)998993132\n"
"55(71)99899-3132\n"
"55(71)99899.3132\n"
"55(71)99899 3132\n"
"55(71) 998993132\n"
"55(71) 99899-3132\n"
"55(71) 99899.3132\n"
"55(071) 99899 3132\n"
"55(071) 998993132\n"
"55(071) 99899-3132\n"
"55(071) 99899.3132\n"
"55(071) 99899 3132\n"
"55 71998993132\n"
"55 7199899-3132\n"
"55 7199899.3132\n"
"55 7199899 3132\n"
"55 71 998993132\n"
"55 71 99899-3132\n"
"55 71 99899.3132\n"
"55 71 99899 3132\n"
"55 071 998993132\n"
"55 071 99899-3132\n"
"55 071 99899.3132\n"
"55 071 99899 3132\n"
"55 (71)998993132\n"
"55 (71)99899-3132\n"
"55 (71)99899.3132\n"
"55 (71)99899 3132\n"
"55 (71) 998993132\n"
"55 (71) 99899-3132\n"
"55 (71) 99899.3132\n"
"55 (071) 99899 3132\n"
"55 (071) 998993132\n"
"55 (071) 99899-3132\n"
"55 (071) 99899.3132\n"
"55 (071) 99899 3132\n"
"+5571998993132\n"
"+557199899-3132\n"
"+557199899.3132\n"
"+557199899 3132\n"
"+5571 998993132\n"
"+5571 99899-3132\n"
"+5571 99899.3132\n"
"+5571 99899 3132\n"
"+55071 998993132\n"
"+55071 99899-3132\n"
"+55071 99899.3132\n"
"+55071 99899 3132\n"
"+55(71)998993132\n"
"+55(71)99899-3132\n"
"+55(71)99899.3132\n"
"+55(71)99899 3132\n"
"+55(71) 998993132\n"
"+55(71) 99899-3132\n"
"+55(71) 99899.3132\n"
"+55(071) 99899 3132\n"
"+55(071) 998993132\n"
"+55(071) 99899-3132\n"
"+55(071) 99899.3132\n"
"+55(071) 99899 3132\n"
"+55 71998993132\n"
"+55 7199899-3132\n"
"+55 7199899.3132\n"
"+55 7199899 3132\n"
"+55 71 998993132\n"
"+55 71 99899-3132\n"
"+55 71 99899.3132\n"
"+55 71 99899 3132\n"
"+55 071 998993132\n"
"+55 071 99899-3132\n"
"+55 071 99899.3132\n"
"+55 071 99899 3132\n"
"+55 (71)998993132\n"
"+55 (71)99899-3132\n"
"+55 (71)99899.3132\n"
"+55 (71)99899 3132\n"
"+55 (71) 998993132\n"
"+55 (71) 99899-3132\n"
"+55 (71) 99899.3132\n"
"+55 (071) 99899 3132\n"
"+55 (071) 998993132\n"
"+55 (071) 99899-3132\n"
"+55 (071) 99899.3132\n"
"+55 (071) 99899 3132\n"
"9 98993132\n"
"9 9899-3132\n"
"9 9899.3132\n"
"9 9899 3132\n"
"719 98993132\n"
"719 9899-3132\n"
"719 9899.3132\n"
"719 9899 3132\n"
"71 9 98993132\n"
"71 9 9899-3132\n"
"71 9 9899.3132\n"
"71 9 9899 3132\n"
"071 9 98993132\n"
"071 9 9899-3132\n"
"071 9 9899.3132\n"
"071 9 9899 3132\n"
"(71)9 98993132\n"
"(71)9 9899-3132\n"
"(71)9 9899.3132\n"
"(71)9 9899 3132\n"
"(71) 9 98993132\n"
"(71) 9 9899-3132\n"
"(71) 9 9899.3132\n"
"(071) 9 9899 3132\n"
"(071) 9 98993132\n"
"(071) 9 9899-3132\n"
"(071) 9 9899.3132\n"
"(071) 9 9899 3132\n"
"55719 98993132\n"
"55719 9899-3132\n"
"55719 9899.3132\n"
"55719 9899 3132\n"
"5571 9 98993132\n"
"5571 9 9899-3132\n"
"5571 9 9899.3132\n"
"5571 9 9899 3132\n"
"55071 9 98993132\n"
"55071 9 9899-3132\n"
"55071 9 9899.3132\n"
"55071 9 9899 3132\n"
"55(71)9 98993132\n"
"55(71)9 9899-3132\n"
"55(71)9 9899.3132\n"
"55(71)9 9899 3132\n"
"55(71) 9 98993132\n"
"55(71) 9 9899-3132\n"
"55(71) 9 9899.3132\n"
"55(071) 9 9899 3132\n"
"55(071) 9 98993132\n"
"55(071) 9 9899-3132\n"
"55(071) 9 9899.3132\n"
"55(071) 9 9899 3132\n"
"55 719 98993132\n"
"55 719 9899-3132\n"
"55 719 9899.3132\n"
"55 719 9899 3132\n"
"55 71 9 98993132\n"
"55 71 9 9899-3132\n"
"55 71 9 9899.3132\n"
"55 71 9 9899 3132\n"
"55 071 9 98993132\n"
"55 071 9 9899-3132\n"
"55 071 9 9899.3132\n"
"55 071 9 9899 3132\n"
"55 (71)9 98993132\n"
"55 (71)9 9899-3132\n"
"55 (71)9 9899.3132\n"
"55 (71)9 9899 3132\n"
"55 (71) 9 98993132\n"
"55 (71) 9 9899-3132\n"
"55 (71) 9 9899.3132\n"
"55 (071) 9 9899 3132\n"
"55 (071) 9 98993132\n"
"55 (071) 9 9899-3132\n"
"55 (071) 9 9899.3132\n"
"55 (071) 9 9899 3132\n"
"+55719 98993132\n"
"+55719 9899-3132\n"
"+55719 9899.3132\n"
"+55719 9899 3132\n"
"+5571 9 98993132\n"
"+5571 9 9899-3132\n"
"+5571 9 9899.3132\n"
"+5571 9 9899 3132\n"
"+55071 9 98993132\n"
"+55071 9 9899-3132\n"
"+55071 9 9899.3132\n"
"+55071 9 9899 3132\n"
"+55(71)9 98993132\n"
"+55(71)9 9899-3132\n"
"+55(71)9 9899.3132\n"
"+55(71)9 9899 3132\n"
"+55(71) 9 98993132\n"
"+55(71) 9 9899-3132\n"
"+55(71) 9 9899.3132\n"
"+55(071) 9 9899 3132\n"
"+55(071) 9 98993132\n"
"+55(071) 9 9899-3132\n"
"+55(071) 9 9899.3132\n"
"+55(071) 9 9899 3132\n"
"+55 719 98993132\n"
"+55 719 9899-3132\n"
"+55 719 9899.3132\n"
"+55 719 9899 3132\n"
"+55 71 9 98993132\n"
"+55 71 9 9899-3132\n"
"+55 71 9 9899.3132\n"
"+55 71 9 9899 3132\n"
"+55 071 9 98993132\n"
"+55 071 9 9899-3132\n"
"+55 071 9 9899.3132\n"
"+55 071 9 9899 3132\n"
"+55 (71)9 98993132\n"
"+55 (71)9 9899-3132\n"
"+55 (71)9 9899.3132\n"
"+55 (71)9 9899 3132\n"
"+55 (71) 9 98993132\n"
"+55 (71) 9 9899-3132\n"
"+55 (71) 9 9899.3132\n"
"+55 (071) 9 9899 3132\n"
"+55 (071) 9 98993132\n"
"+55 (071) 9 9899-3132\n"
"+55 (071) 9 9899.3132\n"
"+55 (071) 9 9899 3132\n\n"
"====== partial matches =======\n"
"55(71 9 7676-3131\n"
"55 (71 7676-3131\n"
"porque76763131sera\n\n"
"======== no matches ==========\n"
"41650-010\n"
"123.456.789-00\n"
"123456789-00")
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