Assuming a hypothetical `(pcase-assert OBJ PAT)' I would expect the following to succeed: (pcase-assert '`,nil ``,nil) (pcase-assert '`,1 ``,,(pred integerp)) (pcase-assert '`,@(list) ``,@,`(list . ,_)) which is to say: a comma should match its argument as a pattern only if it escapes the original backquote (currently comma at all depths "escape" the original backquote). In case there is any interest in this, I have prepared a patch which both adds the above as tests to pcase-tests.el and implements them in pcase.el.