   (regexp-opt factor-declaration-words 'symbols))
 
 (defsubst factor-second-word-regex (prefixes)
-  (format "%s +\\([^ \r\n]+\\)" (regexp-opt prefixes t)))
+  (format "^%s +\\([^ \r\n]+\\)" (regexp-opt prefixes t)))
 
 (defconst factor-method-definition-regex
   "^M::? +\\([^ ]+\\) +\\([^ ]+\\)")

     (1 'factor-font-lock-parsing-word)
     (2 'factor-font-lock-word)
     (3 'factor-font-lock-type-name))
    (,factor-typedef-regex (1 'factor-font-lock-type-name)
                           (2 'factor-font-lock-type-name)
                           (3 'factor-font-lock-invalid-syntax nil t))
    (,factor-c-global-regex (1 'factor-font-lock-type-name)
                            (2 'factor-font-lock-word)
                            (3 'factor-font-lock-invalid-syntax nil t))

(defconst factor-word-definition-regex
  (format "\\_<\\(%s\\)?[:#] +\\(%s\\)"
          (regexp-opt
           '(":" "GENERIC" "DEFER" "HOOK" "MACRO" "MATH" "POSTPONE"
             "PRIMITIVE" "SYNTAX" "TYPED" "TYPED:" "RENAME"))
          "\\(\\sw\\|\\s_\\|\\s(\\|\\s)\\)+"))

(defconst factor-alias-definition-regex
  "^ALIAS: +\\(\\_<.+?\\_>\\) +\\(\\_<.+?\\_>\\)")

;; [parsing-word] [vocab-word]
(defconst factor-vocab-ref-regex
  (factor-second-word-regex
   '("IN:" "USE:" "EXCLUDE:" "QUALIFIED:" "QUALIFIED-WITH:")))

(defconst factor-using-lines-regex "^\\(USING:\\)[ \n]+\\([^;\t]*\\);")

;; [parsing-word] [symbol-word]
(defconst factor-symbol-definition-regex
  (factor-second-word-regex
   '("&:" "CONSTANT:" "DESTRUCTOR:" "FORGET:" "HELP:" "LIBRARY:"
     "MAIN:" "STRING:" "SYMBOL:" "VAR:")))

;; [parsing-word] [symbol-word]* ;
(defconst factor-symbols-lines-regex "^\\(SYMBOLS:\\)[ \n]+\\([^;\t]*\\);")

(defconst factor-int-constant-def-regex
  (factor-second-word-regex '("ALIEN:" "CHAR:" "NAN:")))
