Como o regex Python pode ignorar maiúsculas e minúsculas dentro de uma parte de um padrão, mas não a expressão inteir

Digo que eu tenho uma string contendofoobar fooBAR FOObar FOOBAR e desejo pesquisar todas as instâncias que contenham "foo" ou "FOO" @ que não diferenciam maiúsculas de minúsculma uma "barra" minúscula. Nesse caso,re.findall deve retornar['foobar', 'FOObar'].

A resposta aceita paraessa questã explica que isso pode ser feito em C # com(?i)foo(?-i)bar, mas o Python gera um erro de expressão inválid

biblioteca regex Python suporta esse recurs

questionAnswers(2)

yourAnswerToTheQuestion