>>539
別解っぽいものを書いてみた。
call-interactively は使わないほうが行儀が良いような気がする。

>>544
変だったら指摘してくれると大助かり。

(defun somefunc (str)
  (interactive "sinput: ")
  (if (save-excursion
  (goto-char (point-min))
  (save-match-data
  (search-forward str nil 'noerror)))
  (call-interactively 'somefunc)
  (insert str)))

ただし call-interactively は使わないほうが行儀が良い気がする。