- (if (or (and (/= (point) (point-max))
- (= (char-after (point)) ?\()
- (or (= (char-after (- (point) 1)) ?#)
- (and (= (char-after (- (point) 2)) ?#)
- (= (char-after (- (point) 1)) ?`))))
- (and (re-search-backward "#(\\|#`(" nil t)
+ (if (or (and (eq (char-after (point)) ?\()
+ (save-excursion
+ (skip-chars-backward "'`")
+ (memq (char-before) '(?# ?$))))
+ (and (re-search-backward "[#$][`']?(" nil t)