From: "k_takata (Ken Takata)" Date: 2013-05-14T18:23:23+09:00 Subject: [ruby-core:54979] [Backport93 - Backport #8210] Multibyte character interfering with end-line character within a regex Issue #8210 has been updated by k_takata (Ken Takata). Hi usa, > * regexec.c (onig_search): fix problem with optimization of \z. > [Backport #8210] > patched by k_tanaka at [ruby-core:54251]. Thank you for merging my patch. BTW, my name is not tanaka... ---------------------------------------- Backport #8210: Multibyte character interfering with end-line character within a regex https://bugs.ruby-lang.org/issues/8210#change-39329 Author: sawa (Tsuyoshi Sawada) Status: Closed Priority: Normal Assignee: usa (Usaku NAKAMURA) Category: Target version: =begin With this regex: regex1 = /\z/ the following strings match as expected: "hello" =~ regex1 # => 5 "���������������" =~ regex1 # => 5 but with these regexes: regex2 = /#$/?\z/ regex3 = /\n?\z/ they show difference: "hello" =~ regex2 # => 5 "hello" =~ regex3 # => 5 "���������������" =~ regex2 # => nil "���������������" =~ regex3 # => nil The string encoding is UTF-8, and the OS is Linux (i.e., `$/` is `"\n"`). I expect them to behave the same, and believe this is a bug. =end -- http://bugs.ruby-lang.org/