I think you misunderstood me. The performance issue is a consequence of doing `large_text.split('')` which produces an array of 1-character strings. `String#split` is not lazy, so first an array is produced and then an attempt to match is performed.