(одна или две (цветовые escape-последовательности)), за которыми следуют (прописные буквенные символы в квадратных скобках) (положительный взгляд вперед)
pat = r'''((\[\d+m){1,2})(?=\[[A-Z]+\])'''
Работает с этой строкой:
s = '''[0m[ERROR] [1585551547.349979]: xyz xyz.
[0m[32m[INFO] [2020-03-29 23:58:34.695268] hjk hjk.[0m[32m[INFO] [2020-03-29 23:58:34.695268] foo bar foo'''
Положительный прогноз предотвращает захват этого последнего бита.
>>> print(re.sub(pat,'',s))
[ERROR] [1585551547.349979]: xyz xyz.
[INFO] [2020-03-29 23:58:34.695268] hjk hjk.[INFO] [2020-03-29 23:58:34.695268] foo bar foo
>>>
Если вам нужно удалить последовательности, задающие цвета переднего плана и , например
[2m[93m[0m[32m[INFO] [2020-03-29 23:58:34.695268] foo bar foo
используйте pat = r'''((\[\d+m){1,})(?=\[[A-Z]+\])'''
вместо (один или несколько) вместо (один или два).
Если есть , также такие вещи
[0m[1;37m[ERROR] [1585551547.349979]: xyz xyz.
[0m[1;37m[0;32m[ERROR] [1585551547.349979]: xyz xyz.
use pat = r'''(\[([01];)?\d+m){1,}(?=\[[A-Z]+\])'''
Некоторые из ваших примеров строк показывали цветовые последовательности в середине строки, и вы хотели, чтобы результат показал их замену - вопреки вашему комментарию
все цветовые коды в начале строк.
Эти шаблоны будут удалять последовательность из middle строки .