In a regular expression, you can use (foo|bar) to match either "foo" or "bar". The vertical bar separates them.
In yours, you have (|||) and (||) which it is trying to interpret that way. But all the alternates you are specifying are blank, so you're getting an error (or so I guess).
You should use a backslash before the | to avoid it's special meaning.
Also, in your case you don't need brackets around the bars. Brackets are for specifying multiple strings, or for selecting text. For example, if you use preg_match("/blah (foo|bar) blah/", $string, $matches) then $matches[1] will contain either "foo" or "bar" if the string matched.