Thanks for the reprex for the regexp!
The pattern
"p*xls"
translates to
zero or more occurrences of the character p, followed by the string xls
So, in the immortal words of Keith and Mick
You can't always get what you want
To get what you need, the pattern should be
"p.*xls", which translates as the character p followed by zero or more occurrences of any character, followed by the xls string.
I've been using grep and it's progeny going back to the first Reagan administration, and your question illustrates exactly the kind of problem that I still have to overcome all the time. Regular expressions are so darned powerful that it's easy to lose track of the picky syntax that makes it so.