I am somewhat new to regexps and I am trying to understand this regexp:
(?<!mix\s|mixe[rds]\s|mixing\s)with(?:out)?
in my opinions is search for with
or without
if it is not followed by the following words:
- mix
- mixer/mixed/mixes
- mixing
so I was trying to re-write it it as:
(?<!mix(?:e[rnds]|ing)?\s)with(?:out)?
but I get the following error:
- Lookbehind assertion is not fixed width
I understand how the lookbehind works (it goes back fixed width and then tries to match) but aren't the two regexp inside the lookbehind the same regexp?
(I found some info here, but I am still not clear why in this case it does not work) What's the technical reason for "lookbehind assertion MUST be fixed length" in regex?