import re
text = "Value names: 0 = Something, 1 = Something, else, 4 = A value, 5 = BAD - enough, 6 GOOD, 7 = Ugly,"
pattern = r"(?P<keys>\d+)\s*(?:=\s*)?(?P<values>.*?)(?=\s*(?:,\s*)?(?:\d|\Z))"
for match in re.finditer(pattern, text):
print(match.groupdict())
aW1wb3J0IHJlCnRleHQgPSAiVmFsdWUgbmFtZXM6ICAwID0gU29tZXRoaW5nLCAxID0gU29tZXRoaW5nLCBlbHNlLCA0ID0gQSB2YWx1ZSwgNSA9IEJBRCAtIGVub3VnaCwgNiBHT09ELCA3ID0gVWdseSwiCnBhdHRlcm4gPSByIig/UDxrZXlzPlxkKylccyooPzo9XHMqKT8oP1A8dmFsdWVzPi4qPykoPz1ccyooPzosXHMqKT8oPzpcZHxcWikpIgpmb3IgbWF0Y2ggaW4gcmUuZmluZGl0ZXIocGF0dGVybiwgdGV4dCk6CglwcmludChtYXRjaC5ncm91cGRpY3QoKSk=
{'keys': '0', 'values': 'Something'}
{'keys': '1', 'values': 'Something, else'}
{'keys': '4', 'values': 'A value'}
{'keys': '5', 'values': 'BAD - enough'}
{'keys': '6', 'values': 'GOOD'}
{'keys': '7', 'values': 'Ugly'}