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();
    $re = $r->add($re_list)->re();
    $r2 = new Regexp_Assemble();
    $re_fold = $r2->fold_meta_pairs(0)->add($re_list)->re();
    # test it against the strings
    foreach ($str as $s) {
        # any match?
        $ok = 0;
        foreach ($re_list as $_) {
            if (preg_match("/{$_}/", $s)) {
                $ok = 1;
            }
        }
        # does the assemble regexp match as well?
        $ptr = $s;
        //            $ptr =~ s/\\/\\\\/;
        $ptr = preg_replace('/\\\\/', '/\\\\\\\\/', $ptr);
        //            $ptr =~ s/\n/\\n/;
        $ptr = preg_replace('/\\n/', '/\\\\n/', $ptr);