anchor.diff:      (syntax-line-comment-string-p (line-string point)
                                     (point-charpos point)))
   
  +  (defun syntax-start-block-comment-string-p (line-string pos)
  +    (dolist (pair (syntax-table-block-comment-pairs (current-syntax)))
  +      (let ((start (car pair)))
  +        (let ((result (%match line-string start pos)))
  +          (when result
  +            (return (values result pair)))))))
  +
  +  (defun syntax-end-block-comment-string-p (line-string pos)
  +    (dolist (pair (syntax-table-block-comment-pairs (current-syntax)))
  +      (let* ((end (cdr pair))
  +             (pos (- pos (length end))))
  +        (when (<= 0 pos)
  +          (let ((result (%match line-string end pos)))
  +            (when result
  +              (return (values result pair))))))))
  +
     (defun syntax-start-block-comment-p (point)
       (let ((line-string (line-string point))
             (pos (point-charpos point)))
  -      (dolist (pair (syntax-table-block-comment-pairs (current-syntax)))
  -        (let ((start (car pair)))
  -          (let ((result (%match line-string start pos)))
  -            (when result
  -              (return (values result pair))))))))
  +      (syntax-start-block-comment-string-p line-string pos)))
   
     (defun syntax-end-block-comment-p (point)
  -    (dolist (pair (syntax-table-block-comment-pairs (current-syntax)))
  -      (let ((end (cdr pair)))
  -        (with-point ((point point))
  -          (character-offset point (- (length end)))
  -          (let ((result (%match (line-string point)
  -                                end
  -                                (point-charpos point))))
  -            (when result
  -              (return (values result pair)))))))))
  +    (syntax-end-block-comment-string-p (line-string point)
  +                                       (point-charpos point))))
   
    
  
positive.code:               (values (line-offset point 0 line-comment-pos) t)
                (values nil t))))))
  
  (defun %position-line-comment (string end in-token)
    (loop :for i := 0 :then (1+ i)
          :while (< i end)
          :do (let ((c (schar string i)))
  
negative.code:                        ((syntax-fence-char-p c)
                          (setf in-token nil))))
                  ((nil)
                   (multiple-value-bind (n pair)
                       (syntax-start-block-comment-string-p string i)
                     (cond (n
                            (setf i (%position-block-comment-end string (+ i n) pair 1)))
                           ((syntax-line-comment-string-p string i)
                            (return i))
                           ((syntax-escape-char-p c)
                            (incf i))
                           ((syntax-string-quote-char-p c)
                            (setf in-token :string))
                           ((syntax-fence-char-p c)
                            (setf in-token :fence)))))))
          :finally (ecase in-token
                     ((:string)
                      (return (%position-line-comment string end :string)))
  