> > それなら例えば、
> >  (?=[^\\])
> > などとすればよいのではないでしょうか。
>
> 自分も混乱気味でまた間違っているかもしれませんが、上記は
>
> (?!\\)
>
> とは異なるのでしょうか。
いや、一緒だと思います。


> aaZbbZccZ
>
> という文字列に対して「直前がaa以外のZ」という正規表現の書き方が
> 分かりませんでした。
 (snip)
>
> gsubで文字列を部分的に置きかえることを想定していて、
> (?:...)のように後方参照がないものがよかったので、
> (?:...)を引き合いに出し、(?:...)の逆にあたる表記がないものかと思いました
> 

gsubであれば以下のように、置き換えない部分を( )でくくって残すというのは
どうでしょうか。
print str.gsub(/([^a])Z/,'\1Y')