@@ -7,10 +7,7 @@ use utf8;
77use Test::Most;
88use Test::DescribeMe qw( extended) ; # These can fail at the moment. Disable while debugging
99
10- use open qw( :std :utf8) ;
11-
12- binmode STDOUT , ' :encoding(UTF-8)' ;
13- binmode STDERR , ' :encoding(UTF-8)' ;
10+ use open ' :std' , ' :encoding(UTF-8)' ;
1411
1512use_ok(' Data::Random::String::Matches' );
1613
@@ -187,10 +184,17 @@ subtest 'Possessive with backreferences' => sub {
187184};
188185
189186subtest ' Named captures with possessive quantifiers' => sub {
190- my $gen = Data::Random::String::Matches-> new(qr / (?<id>\d {3})++ (?<code>[A-Z]{2})/ );
187+ my $gen = Data::Random::String::Matches-> new(qr / (?<id>\d {3})+(?<code>[A-Z]{2})/ );
191188 my $str = $gen -> generate_smart();
192189
193- like($str , qr / ^\d {3}[A-Z]{2}$ / , ' Named capture with possessive works' );
190+ # The group (\d{3})+ can repeat, so we get 3, 6, 9, 12, etc. digits
191+ like($str , qr / ^(\d {3})+[A-Z]{2}$ / , ' Named capture with group quantifier works' );
192+
193+ # Extract and verify
194+ if ($str =~ / ^(\d +)([A-Z]{2})$ / ) {
195+ my $digit_count = length ($1 );
196+ is($digit_count % 3, 0, ' Digit count is multiple of 3' );
197+ }
194198};
195199
196200subtest ' Unicode properties with lookahead' => sub {
0 commit comments