in reply to Re^6: counting the number of 16384 pattern matches in a large DNA sequence
in thread counting the number of 16384 pattern matches in a large DNA sequence
If zero-width really means zero-width, the next match should start at the same point and match the same string again, shouldn't it?
Having the regex engine always move on by at least 1 character is a way to ensure that it always makes progress. Thus it prevents many cases of endless looping that would result in pathological behaviors.
Once you know that, the semantics are very useful.
Conversely this m[([ACGT](?=[ACGT]{6}))]; only captures a single character each time. Unless the capturing parens are inside the lookahead construct, anything they match is not captured.
Again, once you know the (slightly counter-intuitive) semantics, this proves to be quite useful.
|
|---|