From: "josh.cheek (Josh Cheek)" Date: 2013-03-02T18:49:29+09:00 Subject: [ruby-core:53102] [ruby-trunk - Bug #8001] 2.0 Regexp \Z matches where it shouldn't Issue #8001 has been updated by josh.cheek (Josh Cheek). Pasted version from 1.9, here is my actual output with both versions: ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-darwin12.2.0] nil ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.2.0] 0 ---------------------------------------- Bug #8001: 2.0 Regexp \Z matches where it shouldn't https://bugs.ruby-lang.org/issues/8001#change-37250 Author: josh.cheek (Josh Cheek) Status: Open Priority: Normal Assignee: Category: Target version: ruby -v: ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-darwin12.2.0] (({for ruby in ~/.rbenv/versions/{1.9.3-p327,2.0.0-p0}/bin/ruby do "$ruby" -v "$ruby" -e 'p /x.*?\Z$/ =~ "x\ny"' done })) In Ruby 1.9: nil In Ruby 2.0: 0 If you remove the "y" from the string, or add more, then they do the same thing. The temporary solution I'm using to get around this is to replace `\Z` with `\n\z` -- http://bugs.ruby-lang.org/