anchor.diff:    (query-replace-internal #'search-forward #'search-backward))
   
   (define-command query-replace-regexp () ()
  -  (query-replace-internal #'re-search-forward #'re-search-backward))
  +  (query-replace-internal #'search-forward-regexp #'search-backward-regexp))
   
   (define-command query-replace-symbol () ()
  -  (query-replace-internal #'search-symbol-forward #'search-symbol-backward))
  +  (query-replace-internal #'search-forward-symbol #'search-backward-symbol))
  
positive.code:                             (next-char i)))
                     (search-backward-endp-function limit)))))
  
  (defun re-search-forward (regex &optional limit)
    (let (scanner)
      (handler-case (setq scanner (ppcre:create-scanner regex))
        (error () (return-from re-search-forward nil)))
      (search-step
       #'(lambda ()
           (multiple-value-bind (start end)
  
negative.code:    #'goto-column
     (search-forward-endp-function limit)))
  
  (defun search-backward-symbol (name &optional limit)
    (search-step
     #'(lambda ()
         (caar (last (search-symbol-positions name :end (window-cur-col)))))
  