import re
str='JK+6.00,PP*2,ZZ,GROUPO'
full_pattern=r'^(?:[A-Z]{2,12}(?:[*+]\d+(?:\.\d{1,2})?)?(?:,|$))*$'
extract_pattern=r'(?P<block>(?P<subject>[A-Z]{2,12})(?:(?P<operation>[*+])(?P<value>\d+(?:\.\d{1,2})?))?)'
if re.fullmatch(full_pattern, str):
for match in re.finditer(extract_pattern, str):
print(match.groups())
aW1wb3J0IHJlCnN0cj0nSksrNi4wMCxQUCoyLFpaLEdST1VQTycKZnVsbF9wYXR0ZXJuPXInXig/OltBLVpdezIsMTJ9KD86WyorXVxkKyg/OlwuXGR7MSwyfSk/KT8oPzosfCQpKSokJwpleHRyYWN0X3BhdHRlcm49cicoP1A8YmxvY2s+KD9QPHN1YmplY3Q+W0EtWl17MiwxMn0pKD86KD9QPG9wZXJhdGlvbj5bKitdKSg/UDx2YWx1ZT5cZCsoPzpcLlxkezEsMn0pPykpPyknCmlmIHJlLmZ1bGxtYXRjaChmdWxsX3BhdHRlcm4sIHN0cik6Cglmb3IgbWF0Y2ggaW4gcmUuZmluZGl0ZXIoZXh0cmFjdF9wYXR0ZXJuLCBzdHIpOgoJCXByaW50KG1hdGNoLmdyb3VwcygpKQ==
('JK+6.00', 'JK', '+', '6.00')
('PP*2', 'PP', '*', '2')
('ZZ', 'ZZ', None, None)
('GROUPO', 'GROUPO', None, None)