REGEXP(7)

πŸ“¦
version 0_git20260208 Β· 2 versions
, in alpine 3.24, arch rolling, nixos 26.05, nixpkgs unstable

🌸 REGEXP(7) β€” regexp, the Plan 9 regular expression notation 🌸

hiii bestie, welcome to the Plan 9 regular expression glow-up πŸ’…. This page lives in the Miscellaneous Information Manual and it's about the regular expression syntax used by the Plan 9 regular expression library regexp(3). It's literally the form used by egrep(1) before egrep got complicated. no cap. 🫢


✨ NAME ✨

regexp β€” Plan 9 regular expression notation πŸŽ€


πŸ’– DESCRIPTION πŸ’–

Okay so, this manual page describes the regular expression syntax used by the Plan 9 regular expression library regexp(3). It is the form used by egrep(1) before egrep got complicated. πŸ¦‹

A regular expression specifies a set of strings of characters. A member of this set of strings is said to be matched by the regular expression. In many applications a delimiter character, commonly bounds a regular expression. In the following specification for regular expressions the word character means any character (rune) but newline. ⭐

okay so tiny heads-up: a couple of spots on this page look like the typesetter ate a character or two (classic), so I'm giving them to you exactly as they appear. not me fixing them, i would never πŸ™ˆ β€” reproducing as-is, bestie πŸ’€

The syntax for a regular expression e0 is 🧚

e3:  literal | charclass | '.' | '^' | '$' | '(' e0 ')'

e2:  e3
  |  e2 REP

REP: '*' | '+' | '?'

e1:  e2
  |  e1 e2

e0:  e1
  |  e0 '|' e1

πŸŽ€ Literals

A literal is any non-metacharacter, or a metacharacter (one of .*+?[]()|\^$), or the delimiter preceded by

🌸 Character classes

A charclass is a nonempty string s bracketed [s] (or [^s]); it matches any character in (or not in) s. A negated character class never matches newline. A substring a-b, with a and b in ascending order, stands for the inclusive range of characters between a and b. In s, the metacharacters an initial and the regular expression delimiter must be preceded by a other metacharacters have no special meaning and may appear unescaped.

πŸ¦‹ The single-character girlies

A matches any character.

A matches the beginning of a line; matches the end of the line.

πŸ’… The REP operators (the repeat girlies)

The REP operators match zero or more (*), one or more (+), zero or one (?), instances respectively of the preceding regular expression e2.

πŸ‘‘ Concatenation

A concatenated regular expression, e1e2, matches a match to e1 followed by a match to e2.

🌈 Alternation

An alternative regular expression, e0|e1, matches either a match to e0 or a match to e1.

πŸ”₯ The greediness moment

A match to any part of a regular expression extends as far as possible without preventing a match to the remainder of the regular expression. periodt. πŸ’…


πŸ” SEE ALSO πŸ”

  • regexp(3) β€” go read it, iykwim 🫢

and that's the whole vibe, bestie πŸ’œ β€” this was REGEXP(7), hanging out in the Miscellaneous Information Manual, and the same REGEXP(7) tag sits right at the bottom of the page too. no date on this one, so don't come for me 😭 mwah πŸŽ€βœ¨πŸ“