Thanks for the explanation, chrisant.
So rather than try to mess with the :p expression, I modified the PC-lint message output so it puts quotes around the file name and I used :q instead. I was able to create an error parser that, when I use the Validate feature, successfully extracts the file path, error line, error column and message. However, when I run lint and double-click on the message in the Build window, SE pops up a Find File dialog. It does not seem to be using the parser, even though I believe I had it selected properly. Is there something else I need to do to get SE to use the new parser?