G'day. With the new Enchant support in 26 I was motivated to try it out. Turns out that some languages generate an empty "extra characters" report for languages I use, which is turned into the (invalid, says `looking-at`) regular expression "[]". This triggers in this function in ispell.el: (defun ispell--get-extra-word-characters (&optional lang) "Get the extra word characters for LANG as a character class. If LANG is omitted, get the extra word characters for the default language." (concat "[" (string-trim-right (apply 'ispell--call-enchant-lsmod (append '("-word-chars") (if lang `(,lang))))) "]")) Obviously, when the result of that call is an empty string we get `[]`; in my case: ] enchant-2-lsmod -word-chars en_US | xxd 00000000: 0a . ...which causes that. (Error is: `(invalid-regexp "Unmatched [ or [^")`) I have attached a patch which correctly handles this case, though I feel there must be a cleaner way to handle this modification of the return. In any case, Google (and I personally) have papers on file with the FSF covering this contribution, if it is non-trivial enough for that to matter.