Здесь можно без парсинга регулярными выражениями обойтись, а использовать разделение функцией разделения строки split, которая встроена в каждый объект типа строка
Далее из результата разбивки
['ID: 001', ' Username: Ivan', ' Balance: 01.00', ' Status: active', '']
берутся элементы 0,1,2, снова разбиваются по ':'
' Username: Ivan' ->[' Username',' Ivan']
и затем исключается оставшийся слева пробел через взятие строки-результата как списка символов без нулевого элемента [1:]
str1='ID: 001; Username: Ivan; Balance: 01.00; Status: active;'
out=str1.split(';')
id=out[0].split(':')[1][1:]
username=out[1].split(':')[1][1:]
balance=out[2].split(':')[1][1:]