def parse_rule(self, rule):
        offset, prefix = 0, ''
        for match in self.rule_syntax.finditer(rule):
            prefix += rule[offset:match.start()]
            g = match.groups()
            if len(g[0])%2: # Escaped wildcard
                prefix += match.group(0)[len(g[0]):]
                offset = match.end()
                continue
            if prefix: yield prefix, None, None
            name, filtr, conf = g[1:4] if not g[2] is None else g[4:7]
            if not filtr: filtr = self.default_filter
            yield name, filtr, conf or None
            offset, prefix = match.end(), ''
        if offset <= len(rule) or prefix:
            yield prefix+rule[offset:], None, None
Test the parse_authstring() method
dataset/ETHPy150Open adampresley/bottlepy-bootstrap/app/bottle.py/Router.parse_rule--crossover with--dataset/ETHPy150Open pytent/pytentd/tentd/tests/utils/test_auth.py/TestAuth.test_parse_authstring