Yes lookaheads will help him because they won’t capture, and can allow things like “()” to be used twice, but regardless it is probably better to do find opening and closing in one shot to limit confusion.
With the current implementation of processing opening and closing separately, it is easy for a user to not really understand what is happening. They expect if they capture something in opening, it shouldn’t be captured in closing.
I should have a fix posted in a couple of minutes. I will also post a solution for your problem @imantz using lookaheads.