I am using ack 3.5.0.
If I run echo 'BROWNFOX' | ack -i '(?<!fire)fox' from my shell, I get this output:
ack: Invalid regex '(?i)(?<!fire)fox':
Variable length lookbehind not implemented in regex m/(?i)(?<!fire)fox/ at /usr/local/bin/ack line 602.
But strangely, if I run echo 'BROWNFOX' | ack -i '(?<!ice)fox', I get BROWNFOX as I would expect.
It seems like I only get the error if the lookbehind begins with a lowercase or uppercase f, and has at least one character after it. I do not get the error if I don't use -i.