def METHOD_NAME(self):
    g = """
    start: "a"? _B? c? _d?
    _B: "b"
    c: "c"
    _d: "d"
    """
    examples = list(map(''.join, product(('', 'a'), ('', 'b'), ('', 'c'), ('', 'd'), )))
    for code in examples:
        self.assert_reconstruct(g, code, keep_all_tokens=True)