import re
regex = re.compile(r"SomeText#(?:(.*?BACKUP) )?(?P<jobFileList>(?(1)[^ ]*|.*$))", flags=re.MULTILINE)
test_str = ("SomeText#\"C:\\\\\",\"Shadow Copy Components:\\\\\",\"E:\\\\\",\"\"\n"
"SomeText#\"D:\\\\\"\n"
"SomeText#\"E:\\\\\",\"Shadow Copy Components:\\\\\"\n"
"SomeText#\"SET SNAP_ID=serv.a.x.com_1380312019\",\"BACKUP H:\\\\ USING \\\\\\\\?\\\\GLOBALROOT\\\\Device\\\\HarddiskVolumeShadowCopy47\\\\OPTIONS:ALT_PATH_PREFIX=c:\\\\VERITAS\\\\NetBackup\\\\temp\\\\_vrts_frzn_img_3200\\\"\n"
"SomeText#\"SET SNAP_ID=serv.a.x.com_1380312019\",\"BACKUP Y:\\\\Libs USING \\\\\\\\?\\\\GLOBALROOT\\\\Device\\\\HarddiskVolumeShadowCopy47\\\\OPTIONS:ALT_PATH_PREFIX=c:\\\\VERITAS\\\\NetBackup\\\\temp\\\\_vrts_frzn_img_3200\\\"\n"
"SomeText#/ahol5d72_1_2\n"
"SomeText#/p7ol4a1p_1_2\n"
"SomeText#Gvadag04SANDsk_Daily\n"
"SomeText#/bck_reco_a9ol5765_1_2_827497669")
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