Вы должны передать функцию в качестве замены.Функция вернет соответствующую замену для данного объекта сопоставления.
Я думаю, \b
(граница слова) здесь более подходит, чем сопоставление пробела перед заглавной буквой.
re.sub(r'\b[A-Z]', lambda x: x.group(0).lower(), sent)