Это не чисто решение регулярных выражений, но вы можете использовать это регулярное выражение с группой захвата и фильтровать пустые результаты:
const str = '"test.test"';
var arr = str.split(/(")|(?=\.)/).filter(Boolean)
console.log(arr)
Проблема с вашим подходом:
В вашем регулярном выражении используется предположение, которое можно сократить до:
(?=[."])
Что означает совпадение с совпадением нулевой ширины, которое имеет либо точку, либо "
в непосредственной следующей позиции.
Поскольку ваш ввод имеет "
в начале, он соответствует позиции 0, тогда позиция перед точкой и, наконец, позиция перед последним закрытием "
(всего 3 совпадения).