is( $r
        ->add( 'abz', 'acdez', 'a5txz', 'a7z', 'a\\d+z', 'a\\d+-\\d+z' ) # 5.6.0 kluge
        ->as_string(), 'a(?:b|(?:\d+-)?\d+|5tx|cde)z',
        'abz a\\d+z acdez a\\d+-\\d+z a5txz a7z'
    );
}
*/
$r = new Regexp_Assemble();
$mute = $r->mutable(1);
$mute->add('dog');
is($mute->as_string(), 'dog', 'mute dog');
is($mute->as_string(), 'dog', 'mute dog cached');
$mute->add('dig');
is($mute->as_string(), 'd(?:ig|og)', 'mute dog');
$r = new Regexp_Assemble();
$red = $r->reduce(0);
$red->add('dog');
$red->add('dig');
is($red->as_string(), 'd(?:ig|og)', 'mute dig dog');
$red->add('dog');
is($red->as_string(), 'dog', 'mute dog 2');
$red->add('dig');
is($red->as_string(), 'dig', 'mute dig 2');
$r = new Regexp_Assemble();
is($r->add('ab', 'cd')->as_string(['indent' => 0]), '(?:ab|cd)', 'indent 0');
$r = new Regexp_Assemble();
is($r->add('dldrt', 'dndrt', 'dldt', 'dndt', 'dx')->as_string(['indent' => 3]), 'd
(?:
   [ln]dr?t
   |x
)', 'dldrt dndrt dldt dndt dx (indent 3)');