Regy Python: parênteses aninhados correspondentes [duplicado]

Esta pergunta já tem uma resposta aqui:

s expressões regulares podem ser usadas para corresponder aos padrões aninhados? [duplicado 11 respostas

suppose Eu tenho uma string contendo substrings

# the substrings and the whole string surrounded by parenthesis
string = '((substring1)(substring2))'


Quero obter substring1 e substring2 usando regex, mas estou tendo um problema:

Isto é o que tenho agora:

match = re.search('(\(.*\))', string)
print match.groups()


O problema é que o resultado mostra:

('(substring1)(substring2)', )


arece que o regex corresponde apenas ao primeiro parêntese de abertura e ao último parêntese de fechament

Em outras palavras, o regex correspondente é como ..

(    match.....    )

ao invés d

(    (match1)(match2)   )

Como faço para o regex pegar o parêntese interno

Obrigad