Earlier quoted context omitted.
See the \zs and \ze patterns in vim. I've asked for them to be implemented in evil, but have been told it's not possible because evil just uses emacs' regex engine, which can't do this.
I think these are lookahead's in some parlance, Emacs doesn't support them. On the rare occasions I need something like that I just use capture brackets. Suppose I want to delete a contiguous string of 'a' but only if it's followed by the letter 'b', then a+\(b\) → \1 aaaab aa gets you b aa So it works with a simple case. I guess it could get messy if you're doing anything really complex but TBH the above is about as…
In vim that's a simple abc\zsdef
It also highlights just the "def", which is nice.
To highlight just the "de", you could use abc\zsde\zef
Yes, you could probably use some lisp magic to do the same in emacs, but it's not nearly as easy or convenient.