I have this test failure on PCRE regex tests (emacs-master, mingw64) : $ cat test/src/regex-tests.log Running 22 tests (2017-08-01 22:21:34+0200) passed 1/22 regex-tests-BOOST Test regex-tests-PCRE backtrace: Test regex-tests-PCRE condition: (wrong-type-argument stringp nil) FAILED 2/22 regex-tests-PCRE The failure occurs here in PCRE.tests : caterpillar caterpillar23 0: caterpillar caterpillar23 1: caterpillar 2: erpillar 3: 4: 5: 3 The variable which is nil instead of being a string is `pattern' in (if (string-match pattern string) nil 'search-failed)`' : (defun regex-tests-PCRE () (let (failures pattern icase string what-failed matches-observed) (regex-tests-generic-line ?# "PCRE.tests" regex-tests-PCRE-whitelist (cond ;; pattern ((save-excursion (re-search-forward "^/\\(.*\\)/\\(.*i?\\)$" nil t)) (setq icase (string= "i" (match-string 2)) pattern (regex-tests-unextend (match-string 1)))) ;; string. read it in, match against pattern, and save all the results ((save-excursion (re-search-forward "^ \\(.*\\)" nil t)) (let ((case-fold-search icase)) (setq string (match-string 1) ;; the regex match under test what-failed (condition-case nil (if (string-match pattern string) nil 'search-failed) ('invalid-regexp 'compilation-failed)) matches-observed (cl-loop for x from 0 to 20 collect (and (not what-failed) (or (match-string x string) ""))))) nil) But I have no idea why pattern is losing its value ? Any clue ? Regards, Fabrice