Interesting - it only appears to affect me with --color set (which is a default alias, but if you unalias grep it stops exploding.)
% type grep
grep is /usr/bin/grep
% echo -n "a" | /usr/bin/grep -o 'b*'
Assertion failed: (advance > 0), function procline, file util.c, line 732.
zsh: done echo -n "a" |
zsh: abort /usr/bin/grep -o 'b*'
Your alias is not part of the macOS default.It appears I missed the -o; without it, my alias asserts, but unaliased doesn't. With the -o they both assert. Still not what I was expecting, but the failure to cleanly replicate it is mine.