// - começo e fim da função [] - range de caracteres aceitos [^] - range de caracteres NAO aceitos {} - qtde ex: #?[0-9]{6} {n,} - n ou mais {n,m} - entre n e m {,m} - 0 a m | - ou ex.: #?[0-9]{6}|[0-9]{3} ( - agrupar ex.: #?([0-9]{6}|[0-9]{3}) ? - 0 ou 1 (caracter opcional ex: #?[0-9]+ * - 0 ou N + - 1 ou N - - sequencia, ex: [0-9] ^ - começo $ - fim \s - todo tipo de espaço [A-z] diferente de [A-Z], pega outros caracteres, hex char table . - qq caracter menos \n (precisa checar) .+ - fica mto lento é melhor usar negated como [^] batato dado - .*o batato - .*?o pcre != posix -> left most first x left most longest cat|catalogue cat catalogue Lembrar tamanho como no {6} antes do {3} mais seguro usar \z do que ^$ \b - separador de palavra [(] == \( python re.escape() para tratar como literal Shortcuts: PCRE \s -> POSIX [:space:] \d - [0-9] \D - [^0-9] POSIX (só pode ser usado dentro de []) [[:digit:]] e [^[:digit:]]