Ok first off let's be clear. The pattern \bword\b only matches "word" it does not match "-word" it match the string "word" within that string. Which bring up a very important point in regex construction context with the input source. http://regexadvice.com/blogs/mash/archive/2007/10/01/Remember-where-you-come-from.aspx
I'm not sure what you mean by
womble:because the hypen isn't part of the word boundary class
The boundary metacharacter does not match any characters it match the position between a "word character" and a "non word character". The term is a bit misleading because regexes don't actually know if some is a word or not.
Secondly, your attempt does not express what you think it does.
(^-|) says match a hyphen at the begining of the input or null
which within the context the rest of the pattern only the null will ever match.
Unless you are planning to write your own custom regex engine, No you can not redefine the metacharacters for custom use. You can define a more specific pattern to what you actual want but that would depend on your source
\b(?<!-)word\b
would work with the samples you provided in the way you desired but without knowing your source input I wouldn't know if that fits your goals.
Michael
"In theory, theory and practice are the same. In practice, they are not."
Albert Einstein