Under The Hood
Here's the non-backtracking implementation of the "and" pattern:
class AndP (Pattern):
def Match (self, subject):
for pat in self.pats:
if not pat.Match (subject):
return False
return True
def __init__ (self, *pats):
self.pats = pats