code: Rule AbcHeader() {
  		return FirstOf(
  				SequenceS(
  						OptionalS(FieldNumber()),
  						OptionalS(TitleFields()),
  						ZeroOrMoreS(OtherFields()),
  						FieldKey()),
  				SequenceS(
  						OptionalS(FieldNumber()),
  						TitleFields(),
  						ZeroOrMoreS(OtherFields()),
  						OptionalS(FieldKey())),
  				SequenceS(
  					FieldNumber(),
  					OptionalS(TitleFields()),
  					ZeroOrMoreS(OtherFields()),
  					OptionalS(FieldKey()))
  			)
  			.label(AbcHeader);
  	}
docs: abc-header ::= [field-number] title-fields *other-field field-key<p>
  Note that field-number is optional.