But what I think is really happening is that when the pattern (?!.*batch\s*=) is encountered, despite being within a parenthesized group, its effect extends beyond those parentheses, effectively setting the condition that from that point in the regex to the end of the regex there can be no “batch =” pattern present.
Close - but it's "from that point in the string to the end of the string". The fragment (?!.*batch\s*=) means "match at this point in the string only if at this point we do not satisfy /.*batch\s*=/". There's no scoping going on - the whole of the string (from the point we've matched to so far) is fair game. So this fragment can only match locations in the string that don't have a "batch =" anywhere after them, and since the second half of the pattern requires "batch", we have a contradiction and the whole will never match.
In reply to Re: Unable to constrain the effect of a negative lookahead
by hv
in thread Unable to constrain the effect of a negative lookahead
by fireblood
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |