zsh compatible regex conditionals

I was having issues with smartcd under zsh, not unsetting
variables that were previously unset before being stashed.

For some reason, zsh doesn't like this type of construct:

    if ! [[ $cond1 || $cond2 ]]; then ...; fi

I played with it a bit and the only way I could get it
to work was to split it out into separate conditionals with
the action placed in the "else" clause.

This is a "works for me patch", feel free to implement in a
different way of course but this makes the unit tests pass under
ZSH for me.

Thanks!