Czy istnieje coś podobnego do Regexa, który jest w stanie analizować pasujące symbole?

To wyrażenie regularne

/\(.*\)/

nie pasuje do pasującego nawiasu, ale do ostatniego nawiasu w ciągu. Czy istnieje rozszerzenie wyrażenia regularnego lub coś podobnego, z odpowiednią składnią, która na to pozwala? Na przykład:

there are (many (things (on) the)) box (except (carrots (and apples)))

/OPEN(.*CLOSE)/ powinno pasować(many (things (on) the))

Mogą istnieć nieskończone poziomy nawiasów.

questionAnswers(3)

yourAnswerToTheQuestion