Next: , Up: Anchoring Operators The Match-beginning-of-line Operator (^)

This operator can match the empty string either at the beginning of the string or after a newline character. Thus, it is said to anchor the pattern to the beginning of a line.

In the cases following, ‘^’ represents this operator. (Otherwise, ‘^’ is ordinary.)

These rules imply that some valid patterns containing ‘^’ cannot be matched; for example, ‘foo^bar’ if RE_CONTEXT_INDEP_ANCHORS is set.

If the not_bol field is set in the pattern buffer (see GNU Pattern Buffers), then ‘^’ fails to match at the beginning of the string. This lets you match against pieces of a line, as you would need to if, say, searching for repeated instances of a given pattern in a line; it would work correctly for patterns both with and without match-beginning-of-line operators.