Your regex is simple enough (i.e., it uses no regex construct introduced after Perl version 5.6) that the hoary YAPE::Regex::Explain can still be informative:
c:\@Work\Perl\monks>perl -wMstrict -le
"use YAPE::Regex::Explain;
;;
print YAPE::Regex::Explain->new(qr/\.[docx|pdf]$/)->explain;
"
The regular expression:
(?-imsx:\.[docx|pdf]$)
matches as follows:
NODE EXPLANATION
----------------------------------------------------------------------
(?-imsx: group, but do not capture (case-sensitive)
(with ^ and $ matching normally) (with . not
matching \n) (matching whitespace and #
normally):
----------------------------------------------------------------------
\. '.'
----------------------------------------------------------------------
[docx|pdf] any character of: 'd', 'o', 'c', 'x', '|',
'p', 'd', 'f'
----------------------------------------------------------------------
$ before an optional \n, and the end of the
string
----------------------------------------------------------------------
) end of grouping
----------------------------------------------------------------------
See also perlretut, and perlrequick.
Give a man a fish: <%-{-{-{-<
|