import re
regex = re.compile(r"^Item([1-9]|[1-4][0-9]|50)$", flags=re.MULTILINE)
test_str = ("Winst\n"
"Item1\n"
"Item2\n"
"Item3\n"
"Item4\n"
"Item5\n"
"Item6\n"
"Item7\n"
"Item8\n"
"Item9\n"
"Item10\n"
"Item11\n"
"Item12\n"
"Item13\n"
"Item14\n"
"Item15\n"
"Item16\n"
"Item17\n"
"Item18\n"
"Item19\n"
"Item20\n"
"Item21\n"
"Item22\n"
"Item23\n"
"Item24\n"
"Item25\n"
"Item26\n"
"Item27\n"
"Item28\n"
"Item29\n"
"Item30\n"
"Item31\n"
"Item32\n"
"Item33\n"
"Item34\n"
"Item35\n"
"Item36\n"
"Item37\n"
"Item38\n"
"Item39\n"
"Item40\n"
"Item41\n"
"Item42\n"
"Item43\n"
"Item44\n"
"Item45\n"
"Item46\n"
"Item47\n"
"Item48\n"
"Item49\n"
"Item50\n"
"Item51\n"
"Item52\n"
"Item53\n"
"Item54\n"
"Item55\n"
"Item56\n"
"Item57\n"
"Item58\n"
"Item59\n"
"Item60\n"
"Item61\n"
"Item62\n"
"Item63\n"
"Item64\n"
"Item65\n"
"Item66\n"
"Item67\n"
"Item68\n"
"Item69\n"
"Item70\n"
"Item71\n"
"Item72\n"
"Item73\n"
"Item74\n"
"Item75\n"
"Item76\n"
"Item77\n"
"Item78\n"
"Item79\n"
"Item80\n"
"Item81\n"
"Item82\n"
"Item83\n"
"Item84\n"
"Item85\n"
"Item86\n"
"Item87\n"
"Item88\n"
"Item89\n"
"Item90\n"
"Item91\n"
"Item92\n"
"Item93\n"
"Item94\n"
"Item95\n"
"Item96\n"
"Item97\n"
"Item98\n"
"Item99\n"
"Item100 ")
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