Try these: (let ((x ''foo)) (printf "Matching ~S\n" x) (match x ('foo (printf "Found foo\n")) (''foo (printf "Found 'foo\n")))) (let ((x 'foo)) (printf "Matching ~S\n" x) (match x ('foo (printf "Found foo\n")) (''foo (printf "Found 'foo\n")))) ...the difference purely being in the definition of x