anchor.diff:         (equal (tm-result-reg-ends result1)
                 (tm-result-reg-ends result2))))
   
  -(defun tm-get-results-from-patterns (patterns string start)
  +(defun tm-get-results-from-patterns (patterns string start end)
     (loop :for rule :in patterns
  -        :for result := (tm-ahead-match rule (tm-ahead-matcher rule) string start)
  +        :for result := (tm-ahead-match rule (tm-ahead-matcher rule) string start end)
           :when result
           :collect result))
   
  
positive.code:   (let ((results
           (tm-get-results-from-patterns (tmlanguage-patterns (current-syntax-parser))
                                         (line-string point)
                                         (point-charpos point))))
      (loop
        (let ((best (tm-best-result results)))
          (unless best (return))
  
negative.code:             (tm-ahead-match rule
                              (tm-region-end rule)
                              (line-string point)
                              start2
                              nil))
             (results
              (cons end-result
                    (tm-get-results-from-patterns (tm-region-patterns rule)
                                                  (line-string point)
                                                  start2
                                                  nil))))
        (loop
          (let ((best (tm-best-result results)))
            (cond ((or (null end-result)
  