Dividido por una palabra (sin distinción entre mayúsculas y minúsculas)

Si quiero tomar

"hi, my name is foo bar"

y dividirlo en"foo", y que esa división no distinga entre mayúsculas y minúsculas (división en cualquiera de"foO", "FOO", "Foo", etc.), ¿qué debo hacer? Tenga en cuenta que, aunque me gustaría que la división no distinga entre mayúsculas y minúsculas, también deseo mantener la sensibilidad a mayúsculas y minúsculas del resto de la cadena.

Entonces si tengo:

test = "hi, my name is foo bar"

print test.split('foo')

print test.upper().split("FOO")

Yo conseguiría

['hi, my name is ', ' bar']
['HI, MY NAME IS ', ' BAR']

respectivamente.

Pero lo que yoquerer es:

['hi, my name is ', ' bar']

cada vez. El objetivo es mantener la distinción entre mayúsculas y minúsculas de la cadena original, excepto por lo que estoy dividiendo.

Entonces, si mi cadena de prueba fue:

"hI MY NAME iS FoO bar"

mi resultado deseado sería:

['hI MY NAME iS ', ' bar']

Respuestas a la pregunta(2)

Su respuesta a la pregunta