正则:/ab{1,3}c/

目标字符串:abbbc。没有回溯,其匹配过程是:

目标字符串:abbbc。有回溯,其匹配过程是:

图中第 5 步有红颜色,表示匹配不成功。此时 b{1,3} 已经匹配到了 2 个字符 b,准备尝试第 3 个时, 结果发现接下来的字符是 c。那么就认为 b{1,3} 就已经匹配完毕。然后状态又回到之前的状态(即第 6 步与第 4 步一样),最后再用子表达式 c,去匹配字符 c,此时整个表达式匹配成功。
图中的第 6 步,就是 回溯。
正则:/ab{1,3}c/

目标字符串:abbbc。有回溯,其匹配过程是:

其中第 7 步和第 10 步是回溯。第 7 步与第 4 步一样,此时 b{1,3} 匹配了两个 b,而第 10 步与 第 3 步一样,此时 b{1,3} 只匹配了一个 b,这也是 b{1,3} 的最终匹配结果。