Project

General

Profile

Bug #19476

Updated by andreccosta (André Costa) about 1 year ago

This regular expression does not have the expected match since Ruby 3.2. 


 Ruby 3.2.1: 

 ```ruby 
 > RUBY_VERSION 
 => "3.2.1" 
 > "123456789".match(/(\(?\d-?\)?){6,15}/) 
 => #<MatchData "123456" 1:"6"> 
 > "123456789".match(/(\d-?\)?){6,}/) 
 => #<MatchData "123456" 1:"6"> 
 ``` 

 Results in a partial match even though the specified quantifiers should allow matching the whole string. 

 Ruby 3.1.3: 

 ``` ruby 
 > RUBY_VERSION 
 => "3.1.3" 
 > "123456789".match(/(\(?\d-?\)?){6,15}/) 
 => #<MatchData "123456789" 1:"9"> 
 > "123456789".match(/(\d-?\)?){6,}/) 
 => #<MatchData "123456789" 1:"9"> 
 ``` 

 Which is the outcome for both patterns in previous versions.

Back