anchor.diff:                  `(defun ,name ,*syntax-add-keyword-lambda-list*
                      (setf (syntax-table-elements syntax-table)
                            (,add-f (syntax-table-elements syntax-table)
  -                                 (make-syntax-keyword
  +                                 (make-syntax-match
                                     :test (if regex-p
                                               (ppcre:create-scanner test)
                                               test)
  
positive.code:           :collect (cons symbol (1- tov)))))
  
  (defun syntax-matched-word (line skw start end)
    (when (or (not (syntax-keyword-word-p skw))
              (and (or (zerop start)
                       (not (syntax-symbol-char-p
                             (aref (line-str line) (1- start)))))
                   (or (<= (length (line-str line)) end)
                       (not (syntax-symbol-char-p (aref (line-str line) end))))))
      (when (syntax-keyword-matched-symbol skw)
        (push (cons (syntax-keyword-matched-symbol skw)
                    (syntax-keyword-symbol-tov skw))
              *syntax-symbol-tov-list*))
      (when (syntax-keyword-end-symbol skw)
        (setq *syntax-symbol-tov-list*
              (remove (syntax-keyword-end-symbol skw)
                      *syntax-symbol-tov-list*
                      :key #'car)))
      (when (syntax-keyword-attr skw)
        (line-put-attribute line start end (get-attr (syntax-keyword-attr skw))))
      t))
  
  (defun syntax-position-word-end (str start)
  
negative.code:     :reader syntax-region-end
      :type syntax-test)))
  
  (defstruct syntax-match
    regex-p
    word-p
    test
  