Obecné regulární výrazy

b[au]f <===> Odpovídá řetězci baf nebo buf.
[a-zA-Z] <===> Množina rozsahu znaků. Odpovídá jednomu výskytu písmene A až Z (malá i velká písmena, pouze bez diakritiky).
[[:alpha:]] <===> Totéž, ale zahrnuje i písmena s háčky a čárkami (pokud jsou nastavené české locales). [[:alnum:]] Jako předchozí, ale navíc zahrnuje číslice.
[^0-9] <===> Odpovídá jednomu znaku, který není číslice.
[^[:digit:]] <===> Jiný zápis téhož.
^ <===> Začátek řetězce.
$ <===> Konec řetězce.


Několik ukázek obecných regexpů

^$ <===> Odpovídá prázdnému řetězci (začátek a hned konec).
^a. <===> Odpovídá řetězci, který začíná písmenem 'a' a je následován jedním libovolným znakem.
^[^0-9]* <===> Odpovídá libovolnému počtu nečíselných znaků od začátku řetězce
b$ <===> Odpovídá řetězci, který končí písmenem 'b'.
[0-9].[[:alpha:]] <===> Odpovídá řetězci, který obsahuje číslici, poté libovolný znak a za ním písmeno.


Rozšířené (extended) regexpy

## značně rozšiřují možnosti těch obecných. Často je třeba je explicitně povolit. Bash je nepodporuje, Perl a GNU awk je používají běžně, grep potřebuje přepínač -E (příp. -P pro použití perlových regexpů; tento přepínač je dostupný, jen pokud byl grep zkompilován s podporou libpcre), GNU sed přepínač -r a při použití regex.h v C/C++ musíte předat funkci regcomp() flag REG_EXTENDED.
## Rozšířené jsou možnosti pro zachycení řetězce, ve kterém se určité části několikrát za sebou opakují. Tyto znaky se zapíší za určitou část regexpu.

a? <===> Jedno nebo žádné písmeno a.
[ao]+ <===> Jeden nebo více výskytů písmen z množiny.
[^ ]{3,5} <===> Tři až pět znaků různých od mezery.
[0-9]* <===> Libovolný počet číslic.


REGEX SYNTAX

The grep command offers three regex syntax options:
1. Basic Regular Expression (BRE)
2. Extended Regular Expressions (ERE)
3. Pearl Compatible Regular Expressions (PCRE)

By default, grep uses the BRE syntax.


POSIX rozšířené - ERE

^ začátek řetězce
$ konec řetězce
. libovolný znak bez / včetně \n
[ ] výčet znaků, např. [abc]
[^ ] negativní výčet znaků, např. [^abc]
- rozsah znaků ve výčtu, např. [a-z]
( ) ohraničení podvýrazu, např. (.+)
| logické NEBO mezi výrazy, např. jpg|gif
? žádné nebo jedno opakování, např. jpe?g
* žádné nebo více opakování, např. a*
+ jedno nebo více opakování, např. a+
{min,max} opakování od min do max, např. a{0,3}


Perl kompatibilní - PCRE

^ začátek řetězce / řádky (multiline)
$ konec řetězce / řádky (multiline)
. libovolný znak bez / včetně \n
[ ] výčet znaků, např. [abc]
[^ ] negativní výčet znaků, např. [^abc]
- rozsah znaků ve výčtu, např. [a-z]
( ) ohraničení podvýrazu, např. (.+)
| logické NEBO mezi výrazy, např. jpg|gif
? žádné nebo jedno opakování, např. jpe?g
* žádné nebo více opakování, např. a*
+ jedno nebo více opakování, např. a+
{min,max} opakování od min do max, např. a{0,3}


POSIX znakové třídy

[:<:] začátek slova
[:>:] konec slova
[:alnum:] písmena a číslice, [A-Za-z0-9]
[:word:] písmena, číslice a podtržítko, [A-Za-z0-9_]
[:alpha:] písmena, [A-Za-z]
[:blank:] znak mezery a tabelátoru, [ \t]
[:cntrl:] kontrolní znaky, [\x00-\x1F\x7F]
[:digit:] číslice, [0-9]
[:graph:] viditelné znaky, [\x21-\x7E]
[:lower:] malá písmenka, [a-z]
[:print:] viditelné znaky a mezera, [\x20-\x7E]
[:punct:] interpunkční znaménka [-!"#$%&'()* +,./:;<=>?@[\\\]^_`{|}~]
[:space:] neviditelné znaky, [ \t\r\n\v\f]
[:upper:] velká písmenka, [A-Z]
[:xdigit:] hexadecimální číslice, [A-Fa-f0-9]


PCRE zástupné znaky

\a alarm, [\x07]
\e escape, [\x1B]
\f formfeed, [\x0C]
\n nový řádek, [\x0A]
\r návrat vozíku, [\x0D]
\t tabelátor, [\x09]
\x00 znak v šestnáctkové soustavě
\d desítková číslice, [0-9]
\D jakýkoliv znak vyjma číslice, [^0-9]
\s neviditelné znaky
\S jakýkoliv znak vyjma neviditelného
\w jakýkoliv znak slova
\W jakýkoliv znak vyjma znaku slova
\b hranice slova
\B opak hranice slova
\A začátek řetězce
\Z konec řetězce nebo poslední řádky
\z konec řetězce


# Získá tagy z Ogg a přiřadí je do proměnných ($ALBUM, $ARTIST, $TITLE).
eval $(ogginfo Floor-Fee-La.ogg | sed -r -e \
'/^[[:space:]]+(TITLE|ARTIST|ALBUM)=/!d' -e 's:=:=":' -e 's:$:":')