As I said in my comment, my approach was to insert a special character before each sequence of digits first as a marker:
"thisIs12MyString".replace(/\d+/g, '~$&').split(/(?=[AZ])|~/)
where ~ can be any other character, preferably non-printable (for example, a control character), since it is unlikely to appear "naturally" in the string.
In this case, you can even insert a marker in front of each uppercase letter, and also lower your eyes, which will greatly simplify the separation:
"thisIs12MyString".replace(/\d+|[AZ]/g, '~$&').split('~')
It may or may not work better.
source share