Yukihiro "Matz" Matsumoto
d21eceb286
mruby-regexp: disable first-byte skip when pattern can match empty
...
first_set_walk returned TRUE when it reached RE_MATCH via epsilon
transitions, but that's exactly the case where the optimization is
wrong: an empty-matchable pattern can start matching at any position,
including bytes that aren't in the computed first-byte set. The
skip-ahead loop in pike_vm then advanced past valid empty-match
positions, producing a match at the wrong offset (e.g. /a?/.match("b")
reported the empty match at index 1 instead of 0).
Co-authored-by: Claude <noreply@anthropic.com >
2026-05-23 09:58:31 +09:00
..
2026-04-23 19:25:38 +09:00
2026-05-10 14:56:53 +10:00
2026-05-10 14:56:53 +10:00
2026-04-23 19:25:38 +09:00
2026-05-20 08:35:22 +09:00
2026-05-10 14:56:53 +10:00
2026-05-06 18:27:16 +09:00
2025-12-11 18:09:09 +09:00
2026-05-22 07:08:26 +09:00
2026-04-25 19:57:44 +09:00
2026-05-22 07:08:26 +09:00
2026-04-23 19:25:35 +09:00
2026-05-02 20:52:00 +09:00
2026-05-16 21:17:41 +09:00
2026-05-16 20:23:23 +09:00
2025-12-11 18:09:10 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2025-08-14 10:52:49 +09:00
2026-05-23 09:58:30 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-04-23 19:25:37 +09:00
2026-03-09 16:50:58 +09:00
2025-12-11 18:09:06 +09:00
2025-12-11 18:09:09 +09:00
2026-04-23 19:25:25 +09:00
2025-12-11 18:09:07 +09:00
2026-04-23 19:25:21 +09:00
2026-03-09 16:50:58 +09:00
2025-11-08 14:26:49 +09:00
2026-05-08 11:51:25 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-05-14 09:57:26 +02:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-05-10 01:32:33 +09:00
2026-05-19 12:05:33 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2025-06-24 13:56:07 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-05-11 14:06:28 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-05-23 09:58:31 +09:00
2026-03-09 16:50:58 +09:00
2026-03-09 16:50:58 +09:00
2026-05-09 10:22:19 +09:00
2026-05-12 11:19:20 +09:00
2026-03-09 16:50:58 +09:00
2026-05-11 07:48:23 +09:00
2026-03-09 16:50:58 +09:00
2026-05-09 10:32:20 +09:00
2026-05-18 16:26:31 +09:00
2026-03-25 15:32:36 +09:00
2024-09-24 00:14:24 +10:00
2026-03-09 16:50:58 +09:00
2025-08-14 10:52:47 +09:00
2021-01-06 18:10:21 +09:00
2021-01-06 18:10:21 +09:00
2023-04-04 19:31:42 +10:00
2025-10-08 23:55:21 +09:00
2025-05-14 15:58:23 +09:00
2025-05-14 15:58:24 +09:00
2022-11-29 15:58:05 +09:00
2026-04-23 19:25:21 +09:00
2026-04-23 19:25:29 +09:00