Мне нужно регулярное выражение, которое проверяет произвольное регулярное выражение (как строку), возвращая количество захваченных групп. Пока у меня есть...
arbitrary_regex.toString().match(/\((|[^?].*?)\)/g).length
Что работает в некоторых случаях, когда предположение о том, что любая группа, начинающаяся с вопросительного знака, не захватывает. Он также учитывает пустые группы.
Он не работает для скобок, включенных в классы символов или экранированные скобки, и, возможно, в некоторых других сценариях.