10 Since explicit character links between each I and O will only be established at match or capture group boundaries, any text from the left-hand side of a rule that should appear in O must be explicitly linked through a capture group reference (rather than merely written out in the righthand side of the rule).
rule (1) above should be preferred to the following variant (which would result in character start and end offsets of 0 and 5 for both output tokens): !won't will n't (2) During rule application, we keep track of character start and end positions as offsets between a string before and after each rule application (i.e.