Compound patterns can included positional patterns. Instead of matching data characters, positional patterns match positions within the input. The positional patterns are defined by the following OmniMark keywords:
line-startis recognized at the beginning of a line.
line-endis recognized at the end of a line.
word-startis recognized at the beginning of a string of letters and/or digits.
word-endis recognized at the end of a string of letters and/or digits.
value-startis recognized at the beginning of a "scanned" value (that is a value at the head of a
value-endis recognized at the end of a "scanned" value.
content-startis recognized at the beginning of an element's content.
content-endis recognized at the end of an element's content.
content-end patterns can be used to locate input at the boundary of
an SGML or XML element. They cannot be used to describe material that overlaps elements. Thus, no subpattern can precede
content-start or follow
content-end. These positional patterns may only appear in
value-end can only be used in the
match part of a
do scan or
repeat scan action.
value-start cannot be preceded by a subpattern, and
value-end cannot be followed by a subpattern.
When a pattern matches and does not consume any input, the next pattern to match must consume a character. This is to avoid infinite loops.
There is no precedence to positional patterns. The first one that matches will succeed, even if other positional patterns also apply.