>>106972664
I don't have my solutions accessible to me but I whipped this up in python in like, 5 minutes and most of that was remember re isn't like Google RE2
import re
reg = re.compile(r"""
(?P<do>do\(\))
|(?P<dont>don't\(\))
|(?:mul\((?P<num1>\d{1,3}),(?P<num2>\d{1,3})\))
""", re.VERBOSE)
with open('input/03', 'r') as f:
inp = f.read()
p1 = 0
p2 = 0
toggle = True
for m in reg.finditer(inp):
print(f"{m}")
if m.group('do'):
toggle = True
elif m.group('dont'):
toggle = False
else:
n1 = int(m.group('num1'))
n2 = int(m.group('num2'))
n = n1 * n2
p1 = p1 + n
if toggle:
p2 = p2 + n
print(f"p1 {p1}, p2 {p2}")