anchor.diff:            (syntax-word-char-p c)))
           (return t))))))
   
  +(defun start-sexp-p (c)
  +  (or (syntax-open-paren-char-p c)
  +      (and (syntax-expr-prefix-char-p c)
  +           (syntax-open-paren-char-p (char-after 1)))
  +      (and (syntax-expr-prefix-char-p c)
  +           (syntax-expr-prefix-char-p (char-after 1))
  +           (syntax-open-paren-char-p (char-after 2)))))
  +
   (define-dir-functions (%forward-sexp %backward-sexp) ()
     ((skip-space-forward skip-space-backward)
  -   (syntax-open-paren-char-p syntax-closed-paren-char-p)
  +   (start-sexp-p syntax-closed-paren-char-p)
      (syntax-closed-paren-char-p syntax-open-paren-char-p)
      (following-char preceding-char)
      (preceding-char char-before-2)
  
positive.code:       (next-char 1)
        (setq c (following-char)))
      (cond
       ((syntax-open-paren-char-p c)
        (forward-list-1))
       ((syntax-closed-paren-char-p c)
        nil)
  
negative.code:             (prev-char 1))
             ((eql c goal-char)
              (next-char 1)
              (do ()
                  ((not (and (backward-p)
                             (syntax-expr-prefix-char-p
                              (following-char)))))
                (next-char 1))
              (return t))
             ((syntax-string-quote-char-p c)
              (skip-string-forward)
  