Global или sticky может совпасть с пустой строкой без изменения lastIndex. Сборщик должен продвинуться сам.

Продвиньтесь на одну позицию

RegexLab продвигается на единицу UTF-16 обычно и на кодовую точку при u или v.

Предел совпадений всё равно нужен

Даже конечный шаблон может совпасть в каждой позиции. RegexLab возвращает до 1 000 и отмечает обрезку.