Если вы хотите использовать split, вы можете утверждать, что слева это ]
, а справа - ди git:
(?<=])(?=\d)
Regex demo | Python демо
Пример кода
import re
regex = r"(?<=])(?=\d)"
strings = [
"3[a]2[b4[F]c]",
"3[a]2[bb]"
]
for s in strings:
print (re.split(r'(?<=])(?=\d)', s))
Выход
['3[a]', '2[b4[F]c]']
['3[a]', '2[bb]']