anchor.diff:                         :start start)
         (length str)))
   
  -(defgeneric syntax-scan-word-test (syntax line start))
  -
  -(defmethod syntax-scan-word-test ((syntax syntax-region) line start)
  +(defgeneric syntax-scan-token-test (syntax line start))
  +
  +(defmethod syntax-scan-token-test ((syntax syntax-region) line start)
     )
   
  -(defmethod syntax-scan-word-test ((syntax syntax-match) line start)
  +(defmethod syntax-scan-token-test ((syntax syntax-match) line start)
     (when (or (not (syntax-match-test-symbol syntax))
               (find (syntax-match-test-symbol syntax)
                     *syntax-symbol-tov-list*
  
positive.code:                           :end1 (when (< end (length str))
                                    end))
                   (syntax-matched-word line syntax start end))
              (return-from syntax-scan-word-test (1- end)))))
         ((functionp (syntax-match-test syntax))
          (let ((end (syntax-position-word-end str start)))
            (when (and (funcall (syntax-match-test syntax) str start end)
                       (syntax-matched-word line syntax start end))
              (return-from syntax-scan-word-test end))))))))
  
  (defun syntax-scan-word (line start)
    (some #'(lambda (syn)
              (syntax-scan-word-test syn line start))
          (syntax-table-elements (current-syntax))))
  
  (defun syntax-scan-whitespaces (str i)
  
negative.code:                  (when (ppcre:scan (syntax-match-test syntax)
                                     (subseq str start end))
                     (syntax-matched-word line syntax start end)
                     (return-from syntax-scan-token-test (values line (1- end))))))
                (t
                 (multiple-value-bind (start1 end1)
                     (ppcre:scan (syntax-match-test syntax)
  