def match(self, left, collected=None):
        assert len(self.children) == 1
        collected = [] if collected is None else collected
        l = copy(left)
        c = copy(collected)
        l_ = None
        matched = True
        times = 0
        while matched:
            # could it be that something didn't match but changed l or c?
            matched, l, c = self.children[0].match(l, c)
            times += 1 if matched else 0
            if l_ == l:
                break
            l_ = copy(l)
        if 1 >= times:
            return True, l, c
        return False, left, collected
dataset/ETHPy150Open kmike/port-for/port_for/docopt.py/OneOrMore.match/swapped operands of `>=`