import re
regex = re.compile(r"^(?P<meta1s>(?:\[[^\]]+\])*)(?P<name>.+(?=\[))(?P<ep>(?:\[(?:(?:NC)?(?:OP|ED|SP(?:\d{2})?)\])|\[(?:\d{2}(?:(?:\.\d+)?(?:_v\d+)?)?)\]))(?P<metas>(?:\[[^\]]+\])*)(?P<others>(?:.*?))(?P<ext>\.(?:mkv|mp4|srt|ass))$", flags=re.MULTILINE | re.UNICODE)
test_str = ("[VCB-Studio] Sword Art Online Alicization War of Underworld [11][Ma10p_1080p][x265_flac].mkv\n"
"[UHA-WINGS&RATH][Sword Art Online - Alicization -War of Underworld-][11][BDRIP 1920x1080 HEVC-YUV420P10 FLAC].sc.ass\n"
"[Nekomoe kissaten][Do It Yourself!!][04][1080p][JPSC].mp4\n"
"[UHA-WINGS&VCB-Studio] Kobayashi-san Chi no Meidoragon S [NCOP][Ma10p_1080p][x265_flac].mkv\n"
"[Hakugetsu&VCB-Studio] No Game No Life [SP03][Hi10p_1080p][x264_flac].mkv\n\n"
"(UHA-SGNIW) NoSQL [SP06] the anime [loolol] (LLLKKK) [SP99] ilikexd [speranza].mkv")
subst = "\\g<meta1s>\\g<name>\\g<ep>\\g<metas>[SOX Edition]\\g<others>\\g<ext>"
result = regex.sub(subst, test_str)
if result:
print(result)
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