Carets in Regular Expressions
^
only means "not the following" when inside and at the start of []
, so [^...]
.
When it's inside []
but not at the start, it means the actual ^
character.
When it's escaped (\^
), it also means the actual ^
character.
In all other cases it means start of the string / line (which one is language / setting dependent).
So in short:
-
[^abc]
-> not a, b or c -
[ab^cd]
-> a, b, ^ (character), c or d -
\^
-> a^
character - Anywhere else -> start of string / line.
So ^[b-d]t$
means:
- Start of line
- b/c/d character
- t character
- End of line