Справочник javascript: global
в примере описания метода exec(str) нашел что тоже глобальное рег.выражение:
regexp = /a+(b+(c+))/g str = "abc aabbcc" result1 = regexp.exec(str) ["abc", "bc", "c"] lastIndex=3 result2 = regexp.exec(str) ["aabbcc", "bbcc", "cc"] lastIndex=10
, попробуй g убери и сравни результаты, если честно не пробывал, самому интересно, потому что не понятно написано:
g — глобальный поиск (обрабатываются все совпадения с шаблоном поиска).
есть два предположения, либо использование круглых скобок ничего не даст - массивы будут иметь лишь нулевой элемент, либо result1 и result2 будут одинаковы, т.к. поиск не продвинется дальше.