anchor.diff:      (tm-match
        (tm-match-matcher rule))))
   
  -(defun tm-ahead-match (rule matcher string start)
  +(defun tm-ahead-match (rule matcher string start end)
     (multiple-value-bind (start end reg-starts reg-ends)
  -      (ppcre:scan matcher string :start start)
  +      (ppcre:scan matcher string :start start :end (or end (length string)))
       (when start
         (vector rule start end reg-starts reg-ends))))
   
  
positive.code:             (tm-ahead-match rule
                              (tm-region-end rule)
                              (line-string point)
                              start2))
             (results
              (cons end-result
                    (tm-get-results-from-patterns (tm-region-patterns rule)
                                                  (line-string point)
                                                  start2))))
        (loop
          (let ((best (tm-best-result results)))
            (cond ((or (null end-result)
  
negative.code:        (equal (tm-result-reg-ends result1)
                (tm-result-reg-ends result2))))
  
  (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 end)
          :when result
          :collect result))
  
  