The caret () is a V-shaped grapheme, usually inverted and sometimes extended, used in proofreading and typography to indicate that additional material needs to be inserted at this point in the text.
There is a similar mark, ,  that has a variety of uses in programming, mathematics and other contexts.
The symbol was included in typewriters and computer printers so that circumflex accents could be overprinted on letters (as in  or ).
The character became reused in computer languages for many other purposes, and over time its appearance was enlarged and lowered, making it unusable as an accent mark.
This symbol is often called a "caret", but this page will call it a "circumflex" to distinguish it from a true caret.
This circumflex is not to be confused with other chevron-shaped characters, such as the circumflex accent, the turned v or the logical AND, which may occasionally be called carets.
Uses
Proofreading mark
The caret was originally and continues to be used in handwritten form as a proofreading mark to indicate where a punctuation mark, word, or phrase should be inserted into a document.
The term comes from the Latin , "it lacks", from , "to lack; to be separated from; to be free from".
The caret symbol is written below the line of text for a line-level punctuation mark, such as a comma, or above the line as an inverted caret (cf. ) for a higher character, such as an apostrophe; the material to be inserted may be placed inside the caret, in the margin, or above the line.
File:Image of carets telling reader to insert a comma, an apostrophe, and quotation marks.png|Carets telling reader to insert a comma, an apostrophe, and quotation marks File:Image of caret telling a reader to insert a letter.png|Caret telling a reader to insert a letter File:Image of caret telling reader to insert a word.png|Caret telling reader to insert a word File:Image of caret telling reader to change a word.png|Caret telling reader to change a word Programming languages
The free-standing circumflex symbol  has many uses in programming languages, where it is typically called a caret.
It can signify exponentiation, the bitwise XOR operator, string concatenation, and control characters in caret notation, among other uses.
In regular expressions, the circumflex is used to match the beginning of a string or line; if it begins a character class, then the inverse of the class is to be matched.
ANSI C can transcribe the circumflex in the form of the trigraph ??'
, as the character was originally not available in all character sets and keyboards.
C++ additionally supports tokens like xor (for ^) and xor_eq (for ^=) to avoid the character altogether.
RFC 1345 recommends to transcribe the character as digraph '> when required.RFC 1345
Pascal uses the circumflex for declaring and dereferencing pointers.
In Smalltalk, the circumflex is the method return statement.
In C++/CLI, .NET reference types are accessed through a handle using the ClassName^ syntax.
In Apple's C extensions for Mac OS X and iOS, circumflex are used to create blocks and to denote block types.
Go uses it as a bitwise NOT operator.
Node.js uses the circumflex in package.json files to signify dependency resolution behavior being used for each particular dependency.
In the case of Node.js, a circumflex allows any kind of update, unless it is seen as a "major" update as defined by semver.
Surrogate symbol for superscript and exponentiation
In mathematics, the circumflex can signify exponentiation (3^5 for ), where the usual superscript is not readily usable (as on some graphing calculators).
It is also used to indicate a superscript in TeX typesetting.
As Isaac Asimov described it in his 1974 "Skewered!" essay (on Skewes' number), "I make the exponent a figure of normal size and it is as though it is being held up by a lever, and its added weight when its size grows bends the lever down."
The use of the circumflex for exponentiation can be traced back to ALGOL 60, which expressed the exponentiation operator as an upward-pointing arrow, intended to evoke the superscript notation common in mathematics.
The upward-pointing arrow is now used to signify hyperoperations in Knuth's up-arrow notation.
Escape character
Often seen as caret notation to show control characters, for instance  means the control character with value 1.
The command-line interpreter, cmd.exe, of Windows uses the circumflex to escape reserved characters (most other shells use the backslash).
For instance to pass a less-than sign as an argument to a program you type .
Ordinal indicator
In Italian, the circumflex is sometimes used in a similar manner to the ordinal indicator, most noticeably on tickets from Trenitalia, the primary operator of trains within Italy, and Rome's ATAC public transit system.
On Trenitalia tickets, the travel class is often written as 1^ or 2^, meaning first class or second class respectively.
This is due to the lack of the feminine ordinal indicator  used in Italian in the (pre-Unicode) ISO Latin 1 character set (the masculine ordinal indicator  is usually replaced by the degree sign when extended characters are not available or in less accurate typesetting).
Upwards-pointing arrow
In internet forums, social networking sites such as Facebook, or in online chats, a circumflex or a series of them may be used beneath or after the post of one user by another user.
In this usage, the circumflex  represents an upwards-pointing arrow meaning for readers, posters or the original post (OP) to see the above line/post, and in addition to the arrow usage, can also mean that the user who posted the ^ agrees with the above post.
Multiple circumflexes may indicate the comment is replying to or relating to the post above that correlates with the number of circumflexes used, or to "underscore" the correct portion of the previous post, or may simply be used for emphasis.
A similar use has been adopted by programming language compilers such as Java compiler to point out where a compilation error has occurred.
In addition to indicating the line number and column number of the error location, the compiler prints out the faulty line of code and uses a single circumflex on the next line, padded by spaces, to give a visual indication of the error location.
The circumflex acts as an upwards-pointing arrow in the text-based print out of the error details.
Historic computer systems encoding
The original 1963 version of the ASCII standard used the code point 5Ehex for an up-arrow.
However, the 1965 ECMA-6 standard replaced the up-arrow with circumflex  diacritic and in 1967, the second revision of ASCII followed suit.
As the early mainframes and minicomputers largely used teleprinters as output devices, it was possible to print the circumflex above a letter when needed.
With the proliferation of monitors, however, this was seen insufficient, and precomposed characters, with the diacritic included, were instead introduced into appended character sets, such as Latin-1 and subsequently Unicode.
The original circumflex character was left for other purposes, and as it did not need to fit above a letter anymore, it became larger in appearance.
See also
Hat operator, a circumflex notation used in mathematics and statistics, is sometimes called a caret
References
