You should take a look at perlretut where these symbols are explained in all detail. Here is a relevant snippet out of it:
Sometimes we would like our regexp to be able to match different possible words or character strings. This is accomplished by using the alternation
metacharacter "|". To match "dog" or "cat", we form the regexp "dog|cat". As before, Perl will try to match the regexp at the earliest possible
point in the string. At each character position, Perl will first try to match the first alternative, "dog". If "dog" doesn't match, Perl will then
try the next alternative, "cat". If "cat" doesn't match either, then the match fails and Perl moves to the next position in the string. Some
"cats and dogs" =~ /cat|dog|bird/; # matches "cat"
"cats and dogs" =~ /dog|cat|bird/; # matches "cat"
See chapter "Using character classes" for an explanation of