On Thu, Jun 21, 2007 at 10:12:04AM -0500, Dan Rue wrote: > On Thu, Jun 21, 2007 at 09:55:51AM -0500, John Hawley wrote: > > A bit off topic, but a question about getting an emacs macro to find alternative regexp's. Can't seem to get the right syntax. > > Here's the macro. Should find and jump to either 'foo' or 'bar'. > > > > The macro displays a message about not finding '\(foo\|bar\)'. > > I've tried myriad variations of the search string pattern with differing quoting and escaping. :( > > > > (defconst search_patterns "\\(foo\\|bar\\)") > > (defun search-for-patterns () > > "Search for alternative patterns." > > (interactive) > > (message "searching for %s" search_patterns) > > (let ((cur (point))) > > (search-forward search_patterns nil t) > > (let ((pnt (point))) > > (cond ((= cur pnt) > > (message "no find %s" search_patterns)) > > (t > > (goto-char pnt) > > (message "found %s at char %s" search_patterns pnt))) > > ))) > > I don't know Lisp or Emacs, but I do know that (, ), and | shouldn't be > escaped (at all) in your regular expression.. > > Dan Doh, got it. This is what mail lists are for, right? As soon as you post, you figure the problem out on your own. No, the expression is correct, I just needed to use 're-search-forward' as the command. ~jh