import re
expression = "($mat.name == 'sign') AND ($most == 100.0)"
tokens = re.findall(r"\$*(?:[a-z]*\.)?[a-z]+|not|[+/*()-]|\d*\.\d+|[\d=]+", expression, re.I)
print tokens
aW1wb3J0IHJlCmV4cHJlc3Npb24gPSAiKCRtYXQubmFtZSA9PSAnc2lnbicpIEFORCAoJG1vc3QgPT0gMTAwLjApIgp0b2tlbnMgPSByZS5maW5kYWxsKHIiXCQqKD86W2Etel0qXC4pP1thLXpdK3xub3R8WysvKigpLV18XGQqXC5cZCt8W1xkPV0rIiwgZXhwcmVzc2lvbiwgcmUuSSkKCnByaW50IHRva2Vucw==
['(', '$mat.name', '==', 'sign', ')', 'AND', '(', '$most', '==', '100.0', ')']