import re
text = "[B] blah blah (foo) blah [/B]\n[B] (foo) (bar) [/B]"
print(re.sub(r'(?s)\[B].*?\[/B]', lambda x: re.sub(r'\([^()]*\)', r'[C]\g<0>[/C]', x.group()), text))
aW1wb3J0IHJlCnRleHQgPSAiW0JdIGJsYWggYmxhaCAoZm9vKSBibGFoIFsvQl1cbltCXSAoZm9vKSAoYmFyKSBbL0JdIgpwcmludChyZS5zdWIocicoP3MpXFtCXS4qP1xbL0JdJywgbGFtYmRhIHg6IHJlLnN1YihyJ1woW14oKV0qXCknLCByJ1tDXVxnPDA+Wy9DXScsIHguZ3JvdXAoKSksIHRleHQpKQ==