GNU has \_< and \_> that matches the empty string, but only at the beginning or
end of a symbol.
The doc string for \_< reads: A symbol is a sequence of one or more symbol-
constituent characters. A symbol-constituent character is a character whose
syntax is either `w' or `_'. `\_<' matches at the beginning of the buffer only
if a symbol-constituent character follows.
\_> has the corresponding description for the end of a symbol.