@DontLabel
    public Rule optional(final Object rule, final Object rule2,
        final Object... moreRules)
    {
        Objects.requireNonNull(moreRules);
        return optional(sequence(rule, rule2, moreRules));
    }
@DontLabel
    public Rule optional(final Object rule, final Object rule2,
        final Object... moreRules)
    {
        Objects.requireNonNull(moreRules);
        return optional(sequence(rule, rule2, moreRules));
    }
@ DontLabel public Rule optional ( final Object rule , final Object rule2 , final Object ... moreRules ) { Objects . requireNonNull ( moreRules ) ; return optional ( sequence ( rule , rule2 , moreRules ) ) ; }
Try and match a given set of rules once

<p>This rule will therefore never fail.</p>

@param rule the first subrule
@param rule2 the second subrule
@param moreRules the other subrules
@return a rule
Try and match a given set of rules once