Project

General

Profile

Bug #17120

String#start_with? return wrong result for Regexp patterns containing /\K/

Added by hanazuki (Kasumi Hanazuki) about 1 month ago. Updated about 1 month ago.

Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
ruby 2.8.0dev (2020-08-13T01:14:20Z master 69b5241c36) [x86_64-linux]
[ruby-core:99580]

Description

String#start_with? unexpectedly reports true when the pattern Regexp contains /\K/ (lookbehind) operator and the lookbehind pattern matches the beginning of self.

"hello".start_with?(/h\Ke/)  # => true (unexpected)

In this example, /h\Ke/ matches "hello", but it's not considered as a match at the beginning of the string by the other Regexp operations (e.g. $~.begin(0) == 1).

Also available in: Atom PDF