Упрощенный пример:
/not(?:this|that)(.*?)end/ig.exec('notthis123end notthat45end')
возвращает
["notthis123end", "123"]
Я стреляю за
["123", "45"]
Все, что я выяснил, помещает RE в объект RegExp
и запускает цикл while вокруг exec
, который кажется каким-то глупым или использует match
, но возвращает весь матч, а не только захваченная часть.