From: gotoken@... Date: 2018-08-27T05:44:44+00:00 Subject: [ruby-core:88669] [Ruby trunk Bug#13671] Regexp with lookbehind and case-insensitivity raises RegexpError only on strings with certain characters Issue #13671 has been updated by gotoken (Kentaro Goto). Thanks znz. The workaround is helpful. And I understood what was happened. https://github.com/k-takata/Onigmo/issues/92#issuecomment-373981492 shows how some combinations of letters are variable length. For example, `"ss"` and `"st"` are mapped `"��"` (`"\u00DF"`) and `"���"` (`"\uFB06"`). Those combinations are listed in ftp://ftp.unicode.org/Public/UNIDATA/SpecialCasing.txt By the way, this expansion by `//i` option looks over kill for me. I wish case sensitivity and SpecialCasing mapping were separated... ---------------------------------------- Bug #13671: Regexp with lookbehind and case-insensitivity raises RegexpError only on strings with certain characters https://bugs.ruby-lang.org/issues/13671#change-73726 * Author: dschweisguth (Dave Schweisguth) * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: 2.4.1 * Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN ---------------------------------------- Here is a test program: ~~~ ruby def test(description) begin yield puts "#{description} is OK" rescue RegexpError puts "#{description} raises RegexpError" end end test("ass, case-insensitive, special") { /(?