"\d" is read "backslash d", or by meaning, "the digit class" / "any digit". The "\" is a backslash (distinct from the forward "/" slash). "\d" matches any single digit 0-9. When reading a pattern aloud to a colleague, you can say either the literal "backslash d" or its meaning "any digit". Related: "\D" (backslash capital-D) is "any non-digit". Getting "backslash" versus "slash" right matters - mixing them up changes the pattern entirely.
2 / 5
How do you read the regex token "\w" aloud?
"\w" is read "backslash w", or by meaning "a word character", matching letters, digits, and underscore ([A-Za-z0-9_]). Don't confuse it with "\s" which is whitespace - "\w" is NOT whitespace despite the "w". Its opposite "\W" (capital) means "non-word character". When explaining a regex aloud, naming the meaning ("any word character") is often clearer than the literal "backslash w". Be careful to distinguish "\w" (word) from "\s" (space) from "." (any character).
3 / 5
How do you read the regex ".*" aloud?
".*" is read "dot star." The "." (dot) matches any single character, and "*" (star, or "asterisk") means "zero or more of the preceding". Together ".*" means "any characters, any length" - a greedy match-everything. Devs almost universally say "dot star". You might add meaning: "dot-star matches anything". The "*" is called "star" in regex contexts (though "asterisk" is understood). So ".*?" is "dot star question-mark" (the lazy/non-greedy version).
4 / 5
How do you read the regex "[a-z]+" aloud?
"[a-z]+" is read "a to z, one or more", or literally "open bracket a-z close bracket, plus." The "[...]" is a character class (read "bracket" or "character class"), "a-z" is the range "a to z" (the dash means "to/through"), and "+" means "one or more". So it matches one or more lowercase letters. You can read it by meaning ("one or more lowercase letters") or token by token. The "+" is "plus"; the dash inside a class is "to" or "through", not "minus".
5 / 5
How do you read the regex anchors "^" and "$" aloud?
"^" is read "caret" (anchoring the start of a line/string) and "$" is read "dollar" (anchoring the end). So "^abc$" is "caret a-b-c dollar", meaning "a line that is exactly abc". The "^" is also informally called "hat" or "circumflex". Inside a character class like "[^0-9]", "^" means negation, read "caret" still but meaning "not". The "$" is universally "dollar". These anchors are fundamental, so reading "^...$" as "caret ... dollar" is standard among developers.