Expresión regular para devolver todos los caracteres entre dos caracteres especiales

¿Cómo haría para usar regx para devolver todos los caracteres entre dos corchetes? Aquí hay un ejemplo

foobar['infoNeededHere']ddd
needs to return infoNeededHere

Encontré una expresión regular para hacerlo entre llaves, pero todos los intentos de hacerlo funcionar con corchetes han fallado. Aquí está esa expresión regular:(?<={)[^}]*(?=}) y aquí está mi intento de hackearlo

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

Solución final

import re

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

Respuestas a la pregunta(6)

Su respuesta a la pregunta