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