Patch coming. <rdar://problem/22771475>
I think you can test this with: var re = /.*(?:(?:(?:(?:(?:(?:)))))).*/; re.exec("hello");
Created attachment 263624 [details] the patch. Thanks for the repro case.
Comment on attachment 263624 [details] the patch. For future reference, I much prefer this syntax for backwards unsigned looping: for (termIndex = terms.size(); termIndex-- >= endIndex; ) That way, you don't need to worry about endIndex being 0 or terms.size() being 0. In this case, we happen to know that neither problem is possible.
Comment on attachment 263624 [details] the patch. Clearing flags on attachment: 263624 Committed r191364: <http://trac.webkit.org/changeset/191364>
All reviewed patches have been landed. Closing bug.