is($re->stats_raw(), 0, "stats raw empty"); ok(!$re->stats_cooked(), "stats cooked empty"); ok(!$re->stats_dup(), "stats dup empty"); $re = new Regexp_Assemble(); is($re->stats_add(), 0, "stats_add empty"); is($re->stats_raw(), 0, "stats_raw empty"); is($re->stats_cooked(), 0, "stats_cooked empty"); is($re->stats_dup(), 0, "stats_dup empty"); is($re->stats_length(), 0, "stats_length empty"); $str = $re->as_string(); is($str, Regexp_Assemble::Always_Fail, "stats str empty"); # tricky! is($re->stats_length(), 0, "stats len empty"); $re = new Regexp_Assemble(); $re->add('\\Q.+\\E', '\\Q.+\\E', '\\Q.*\\E'); is($re->stats_add(), 2, "stats_add 2"); is($re->stats_raw(), 18, "stats_raw 2"); is($re->stats_cooked(), 8, "stats_cooked 2"); is($re->stats_dup(), 1, "stats_dup 2"); is($re->stats_length(), 0, "stats_length 2"); $str = $re->as_string(); is($str, '\\.[*+]', "stats str 2"); is($re->stats_length(), 6, "stats len 2 <{$str}>"); # CPAN bug #24171 # given a list of strings $str = ['a b', 'awb', 'a1b', 'bar', "a\nb"]; foreach (array('s', 'w', 'd') as $meta) { # given a list of patterns $re_list = ["a\\{$meta}b", "a\\@{[uc{$meta}]}b"]; # produce an assembled pattern $r = new Regexp_Assemble();