I'm still thinking about what to do. I've noticed that there are >19 uses of \b mostly in SlickEdit regular expressions. Most are in proc search functions or language specific searching. NONE override the word characters.
For example,
int status = search('[.;,(){}]|<<|>>|->|\b(case|catch|end|fun|if|receive|try)\b', "-rh@XSC");
Technically the above has a potential bug and should be this:
int status = search('[.;,(){}]|<<|>>|->|\b(case|catch|end|fun|if|receive|try)\b', "-rh@XSC,w=[a-zA-Z0-9_]");
Otherwise, if the user decides to change their word characters, the above code could break.
I found one Perl case which uses the pos() function and doesn't override the word characters (it's an extra argument).
ALL of these places I found need some sort of fix.
Here are the solutions I'm thinking about:
Solution A:
* Change the documentation
* Fix the macro uses of \b to specify the word characters
CONS
* More deviations from Perl regex which are not necessary
Solution B:
* Change \w, \W, \b, \B to use hardwired Perl word characters for both Perl and SlickEdit regex.
* Have \o<, \o> use the user defined word characters for both Perl and slickEdit syntax.
* Need to add \ob to match a user defined word boundary and \oB to match a user defined non-word boundary.
* Need to add configurable wordchars options. Some needed for more precise Vim regex support.
\ow<[char-set] Match beginning of word
\ow>[char-set] Match end of word
\owb[char-set] Match at word boundary
\owB[char-set] Match at non-word boundary
* \w, \W should use hardwired Perl word characters inside character set definition
* \ow, \oW should use user defined word characters inside character set definition.
* Change the documentation
* Change the macro uses of \b to use \o<, \o>, and specify the word characters
CONS
* Could break user macros/expectations
Solution C:
* Change \w, \W, \b, \B to use hardwired Perl word characters BUT do not make this change for SlickEdit regex
* Have \o<, \o> use the user defined word characters for both Perl and slickEdit syntax.
* Need to add \ob to match a user defined word boundary and \oB to match a user defined non-word boundary.
* Need to add configurable wordchars options. Some needed for more precise Vim regex support.
\ow<[char-set] Match beginning of word
\ow>[char-set] Match end of word
\owb[char-set] Match at word boundary
\owB[char-set] Match at non-word boundary
* \w, \W should use hardwired Perl word characters inside Perl character set definition
* \ow, \oW should use user defined word characters inside character set definition.
* Change the documentation
* Fix the macro uses of \b to specify the word characters
CONS
* Could break user macros/expectations but change is limited to Perl syntax which is used less in macros.