from http://www.regular-expressions.info/lookaround.html

e poi i miei colleghi mi chiedono perche ogni tanto spacco le tastiere in 2!
magari non ti servono le asserzioni. Magari ti basta un non capturing subpattern /(?:[^x])(z)/ e poi prendi i match dagli indici
O forse neanche quello, magari ti basta anche solo un [^x](z).
Alla fine dipende da cosa vuoi fare.

ad esempio var str = "xz cz az mz xz".replace(/([^x])(z)/g, "$1a"); ti restituira' tutti gli z che non sono preceduti da una x sostituiti con una a, quindi "xz ca aa ma xz"