src/main/java/com/github/fge/grappa/parsers/BaseParser.java
@Cached
    @DontLabel
    public Rule optional(final Object rule)
    {
        Objects.requireNonNull(rule);
        return new OptionalMatcher(toRule(rule));
    }
@Cached
    @DontLabel
    public Rule optional(final Object rule)
    {
        Objects.requireNonNull(rule);
        return new OptionalMatcher(toRule(rule));
    }
Try and match a rule zero or one time

<p>This rule therefore always succeeds.</p>

@param rule the subrule
@return a rule