From: duerst@... Date: 2018-01-30T07:32:47+00:00 Subject: [ruby-core:85248] [Ruby trunk Bug#14418] ruby 2.5 slow regexp execution Issue #14418 has been updated by duerst (Martin D��rst). What happens essentially when using //i is that every '��' in the string (and in the regular expression) is expanded to 'ss', dynamically. For [\S\s], this wouldn't be necessary. But all character classes are internally treated the same way, so it still happens. ---------------------------------------- Bug #14418: ruby 2.5 slow regexp execution https://bugs.ruby-lang.org/issues/14418#change-70003 * Author: jakub.wozny (Kuba W) * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: 2.5 * Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN ---------------------------------------- I have simple regexp that performing very slow. ~~~ ruby "fu��ball "*20 =~ /^([\S\s]{1000})/i ~~~ It works fast if I remove `/i` flag. I figured out that is also depends on string length or on quantifier value (in this case it is `{1000}`). When you remove `��` form the string it also works fast. I tested on 2.3.1, 2.4.3 and 2.5.0. I'm not sure it is a bug or it just works that way. -- https://bugs.ruby-lang.org/ Unsubscribe: