Вы правы, что есть проблемы с реализацией. IE игнорирует пустые значения и захватывает блоки в регулярных выражениях.
Так что для
"foo".split(/o/)
IE дает
[f]
где другие браузеры дают
["f","",""]
и при добавлении захвата:
"foo".split(/(o)/)
IE выполняет то же самое, но другие добавляют захваченный разделитель в результирующий массив, чтобы получить
["f","o","","o",""]
Так что, к сожалению, вам, вероятно, нужно либо избегать использования split, либо кодировать эти проблемы.