Como combinar string entre parênteses (aninhados) em Java?

Eu gostaria de combinar uma string entre parênteses como:

(i, j, k(1))
^^^^^^^^^^^^

A string também pode conter parênteses fechados. Como combiná-lo com a expressão regular em Java sem escrever um analisador, já que esta é uma pequena parte do meu projeto. Obrigado!

Editar:

Eu quero procurar um bloco de caracteres e encontrar algo comou(i, j, k), u(i, j, k(1)) ou apenasu(<anything within this paired parens>)e substitua-os por__u%array(i, j, k) e__u%array(i, j, k(1)) para o meu aplicativo de tradução Fortran.

questionAnswers(3)

yourAnswerToTheQuestion