import re
regex = re.compile(r"[NMS]\w+\-\w*BASE\w*\.AD\.DTI", flags=re.IGNORECASE)
test_str = ("MAVM-WLBASE1a.ad.dti.\n"
"MAVM-WLBASE2a.ad.dti.\n"
"MAVM-WLBASE3a.ad.dti.\n"
"MAVM-WLBASE4a.ad.dti.\n"
"MAVM-WLBASE5a.ad.dti.\n"
"NJ-BASEQA2015.ad.dti.\n"
"NJVM-BASEQA2014.ad.dti.\n"
"NJVM-WLBASE6b.ad.dti.\n"
"NJVM-WLBASE7a.ad.dti.\n"
"NY2-BASEQA.ad.dti.\n"
"NY2-DW5BASEQA01.ad.dti.\n"
"SHVM-WLBASE1A.ad.dti.\n"
"NJ-ODEV2015.ad.dti.\n"
"NJ-ODEV2015b.ad.dti.\n"
"NJVM-ODEV2014.ad.dti.\n"
"NY2-ODEV2017.ad.dti.\n"
"SH-ODEV2017.ad.dti.\n"
"MOVM-WL12C.ad.dti.\n"
"NJ-PASWL12c01.ad.dti.\n"
"NJ-WL12cSVT01.ad.dti.\n"
"NJVM-WL12CUST1.ad.dti.\n"
"NJVM-wl12cust2.ad.dti.\n"
"njvm-wl12cust4.ad.dti.\n"
"njvm-wl12x64j7a.ad.dti.\n"
"NY2-WL12asp01.ad.dti.\n"
"NY2-WL12ASP02.ad.dti.\n"
"NY2-WL12ASP03.ad.dti.\n"
"NY2-WL12ASP04.ad.dti.\n"
"SH-AutoITWL12.ad.dti.\n"
"SH-PASWL12c02.ad.dti.\n"
"SHVM-WL12-RE.ad.dti.\n"
"SHVM-WL12CUST3.ad.dti.\n"
"ASP-WL1213INT01.asp.ad.dti.\n"
"ASP-WL12CEXT5.asp.ad.dti.\n"
"ASPVM-WL12c10.asp.ad.dti.\n"
"ASPVM-WL12c8.asp.ad.dti.\n"
"ASPVM-WL12c9.asp.ad.dti.\n"
"LT-MPROEKT.ad.dti.\n"
"LT-jpo01.ad.dti\n"
"LT-jpo01.adXdti")
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