sh is elastic
fix first line elastic bug
allow non-word annotations (for !* etc), and explicitly work around
Emacs' lack of named groups