On , I learnt ...

How to use look-behind regex assertions with ripgrep

By default ripgrep uses Rust’s regex crate for parsing regular expressions which does not support look-ahead or look-behind assertions.

To use such zero width assertions, use the --pcre2 option:

rg --pcre2 'A(?=B)'   # look ahead positive
rg --pcre2 'A(?!B)'   # look ahead negative
rg --pcre2 'A(?<=B)'  # look behind positive
rg --pcre2 'A(?<!B)'  # look behind negative