In the case you mentioned, you can avoid zero-lengths. However, negative look{ahead,behind}s are sometimes more difficult to convert.
Simple zero-length assertions like \w are present in many other programs using regexps (sometimes called \<,\>), what proves that they are useful and neccessary.
In reply to Re: lookahead / lookbehind vs other regex methods
by ambrus
in thread lookahead / lookbehind vs other regex methods
by shemp
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |