Take, for example, this command:
find . -regex ".*\.\(cpp\|h\)"
This will find all the .h and .cpp files in your directory. The period character '.' in regular expressions usually means "any character". To get it to match only an actual period, you must escape it using the backslash character '\'.
In this case, given a character with a special meaning, you must escape it to get the actual character it represents.
Now, take the parenthesis and the "or" bar, being characters '(', ')', and '|', respectively. These also have special meanings, used for grouping regular expressions. However, to get the special meaning, the characters must be escaped using the backslash! Without the backslash, the characters have the meaning of the actual character it represents.
Why is the '.' treated differently from '(', ')', and '|'?