Go forward to Match-end-of-line Operator.
Go up to 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.)
* It (the `^') is first in the pattern, as in `^foo'.
* The syntax bit `RE_CONTEXT_INDEP_ANCHORS' is set, and it is outside
a bracket expression.
* It follows an open-group or alternation operator, as in `a\(^b\)'
and `a\|^b'. See Grouping Operators, and *Note Alternation
Operator::.
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 (*note GNU
Pattern Buffers::.), then `^' fails to match at the beginning of the
string. See POSIX Matching, for when you might find this useful.
If the `newline_anchor' field is set in the pattern buffer, then `^'
fails to match after a newline. This is useful when you do not regard
the string to be matched as broken into lines.