code: @DontLabel
      public Rule optional(final Object rule, final Object rule2,
          final Object... moreRules)
      {
          Objects.requireNonNull(moreRules);
          return optional(sequence(rule, rule2, moreRules));
      }
docs: 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