BRE's need to escape () {} and can use \n as the nth backreference

^     first character on line
$     last character on line
.     matches any single character

*     matches preceding element 0 or more times
{m/n} matches preceding element at least m and no more than n times
?     matches preceding element 0 or 1 times (ERE only)
+     matches preceding element 1 or more times (ERE only)
|     or operator (ERE only)

[ ]   matches any single character in brackets (a-z, A-Z, 0-9... allowed for character ranges)
[^ ]  matches any single character not in brackets
( )   sub-expression

Character classes:
  [:alnum:] alphanumeric [A-Za-z0-9]
  [:alpha:] alphabetic [A-Za-z]
  [:blank:] space and tab
  [:cntrl:] control characters
  [:digit:] numbers [0-9]
  [:graph:] visible characters
  [:lower:] lowercase letters
  [:upper:] uppercase letters
  [:print:] visible and space characters
  [:punct:] punctuation characters []!"#$%^&'()*+,./:;=<>?\@`{}|~-_
  [:space:] whitespace characters
  [:xdigit:] hexadecimal digits [A-Fa-f0-9]