1* metacharacters
2* character escapes \
3* anchors \A\Z or ^$
4* character classes [][^]
5* quantifiers *?+{min,max}
6* grouping ()
7* substitutions $1 or \1
8
1\p{L} - letter
2\p{P} - punctuation
3\p{InBasicLatin} - in basic Latin Unicode block
4\p{InArabic} - in Arabic Unicode block
5
1. any character (almost*)
2\ escape character
3| or
4\A or ^ anchor: start of string
5\Z or $ anchor: end of string
6[] list or range to be matched
7[^] negative list or range (NOT these characters)
8
1\d any digit
2\D any non-digit
3\w any word character [a-zA-Z0-9_]
4\W any non-word char. [^a-zA-Z0-9_]
5\s any whitespace char.
6\S any non-whitespace char.
7\t tab
8\n newline
9\r carriage return
10