in reply to Re^2: Backtracking hurts: slow regexp
in thread Backtracking hurts: slow regexp
that's it. it does not allow backtracking. so, the (?>.*?<\/td>){9}will get exactly 9 instances of (non-greedy) anything followed by </td>... it won't try to go till the end of the string chasing the longest .* (because it is not greedy) and if the last . of the sequence is not followed by </td>, it will fail without backtracking (working more or less as a deterministic automaton).(?>...) Grab what we can, prohibit backtracking
|
|---|