use strict; use warnings; use Test::Simple tests => 6; my $digits_4 = qr/(\d{3,4})(?![\d-])/; my $hyper = ''; my @cases = ( # Input Expected output ['2018-1-1 1234', '2018-1-1 1234' ], ['2018-1-1 567', '2018-1-1 567' ], ['2018-1-1 abcd', '2018-1-1 abcd' ], ['2018-1-1 1234 x', '2018-1-1 1234 x' ], ['2018-1-1 567 x', '2018-1-1 567 x' ], ['2018-1-1 abcd x', '2018-1-1 abcd x' ], ); foreach my $case (@cases) { $case->[0] =~ s{$digits_4} {\\$1\<\/b\>\<\/a\>}; ok( $case->[0] eq $case->[1]); }