RLE Brainfuck dialect
Python 2, 62 61 bytes



lambda s:eval(re.sub('(\d*)(.)',r'+1*\1*1*"\2"',s))
import re


Try it online!

The regex substitution expands 3&lt;2+- into the string:

+1*3*1*"&lt;"+1*2*1*"+"+1**1*"-"


which is then evaled. (Note how when \1 is empty, we get 1**1 = 1.) The first + is a unary operator which binds to the first number, and the other +s are string concatenation. This beats the more obvious

lambda s:re.sub('(\d+)(.)',lambda m:int(m.group(1))*m.group(2),s)
import re


by 14 bytes. Ordinarily "\2" wouldn’t always work, but thankfully \ and " aren’t brainfuck commands.



xnor saved a byte, supplying the 1*\1*1 trick. Previously I had \1L in the regex, and defined L=1 as a lambda argument, which is also pretty cool: 3L is a long int literal and L is a variable.