Hello, I think I found a bug in Functions/Misc/regexp-replace Steps to reproduce: zsh -f str='x :=bad' autoload regexp-replace regexp-replace str 'a' 'z' && echo $str Actual Output: (eval):1: bzd not found Expected: x :=bzd Root cause: Line 41: eval ${1}=${(q)5} It appears the ${(q)5} is not escaping = so the =command is executed after : Instead of 'x\ :\=bad', you get '= x\ :=bad' One way to fix: 41: eval ${1}=${(qqq)5} Patch file is attached. Thanks Jacob Menke