import re
test_str = "[1]first[2]second[3]third"
print( re.split(r'(?!^)(?=\[\d+\])', test_str) )