gather.el provides search regexp and kill text.  This is not replacing
nor modifying Emacs `kill-ring' mechanism.  You MUST know about elisp
regular-expression.
Have similar concept of `occur'.  If I think `occur' have line oriented
feature, gather.el have list oriented feature.  You can handle the list,
as long as you can handle Emacs-Lisp list object.

## Install:

Put this file into load-path'ed directory, and byte compile it if
desired. And put the following expression into your ~/.emacs.

    (require 'gather)
    (define-key ctl-x-r-map "\M-w" 'gather-matching-kill-save)
    (define-key ctl-x-r-map "\C-w" 'gather-matching-kill)
    (define-key ctl-x-r-map "\M-y" 'gather-matched-insert)
    (define-key ctl-x-r-map "\M-Y" 'gather-matched-insert-with-format)
    (define-key ctl-x-r-map "v" 'gather-matched-show)

********** Emacs 22 or earlier **********
    (require 'gather)
    (global-set-key "\C-xr\M-w" 'gather-matching-kill-save)
    (global-set-key "\C-xr\C-w" 'gather-matching-kill)
    (global-set-key "\C-xr\M-y" 'gather-matched-insert)
    (global-set-key "\C-xr\M-Y" 'gather-matched-insert-with-format)
    (global-set-key "\C-xrv" 'gather-matched-show)

## Usage:

`C-x r M-w` : Kill the regexp in current-buffer.
`C-x r C-w` : Kill and delete regexp in current-buffer.
`C-x r M-y` : Insert killed text to point.
`C-x r M-Y` : Insert killed text as formatted text to point.
`C-x r v`   : View killed text status.

Why gather.el?

1. Hope to get list of function names in elisp file buffer.
2. C-x r M-w with regexp like "(defun \\(.+?\\_>\\)"
3. Now, you can paste function names by C-x r M-y with 1
4. Write a external document of functions has been gathered.