Correct me if I'm wrong but . . . My understanding is that \Q and \E would not be needed in the regex if you quotemeta $P, or vise versa (quotemeta is not needed if you use \Q .. \E). From quotemeta:
Returns the value of EXPR with all non-"word" characters backslashed. (That is, all characters not matching /A-Za-z_0-9/ will be preceded by a backslash in the returned string, regardless of any locale settings.) This is the internal function implementing the \Q escape in double-quoted strings.
If EXPR is omitted, uses $_ .
They say that time changes things, but you actually have to change them yourself.