Expressão regular para retornar todos os caracteres entre dois caracteres especiais

Como eu usaria o regx para retornar todos os caracteres entre dois colchetes. Aqui está um exemplo

foobar['infoNeededHere']ddd
needs to return infoNeededHere

Encontrei um regex para fazê-lo entre colchetes, mas todas as tentativas de fazê-lo funcionar com colchetes falharam. Aqui está esse regex:(?<={)[^}]*(?=}) e aqui está minha tentativa de hackear

(?<=[)[^}]*(?=])

Solução final

import re

str = "foobar['InfoNeeded'],"
match = re.match(r"^.*\['(.*)'\].*$",str)
print match.group(1)

questionAnswers(6)

yourAnswerToTheQuestion