|Subject:||Doesn't handle closing parenthesis in charracter class correctly|
Hi, 1 bugs is reported by a Debian user : This code doesn't work properly, but should without problem --->8--- use strict; use Regexp::Assemble; my $ra = Regexp::Assemble->new(); $ra->add('([^)])s-'); print $ra->re; ---8<--- It looks like Regexp::Assemble thinks that ) in [^)] need to be escaped (It doesn't - only ]$^-\ have special mining and may need escaping (but sometimes doesn't need)) but places escape character in wrong position: ---8<--- Building: (?:([^)\])s-|((x)y)) Invalid  range "s-[" in regex; marked by <-- HERE in m/(?:([^)\])s-[ <-- HERE 01]|((x)y))/ at /usr/share/perl5/Regexp/Assemble.pm line 1004. --->8--- After escaping closing ], character class is still going on, and s-[ is interpreted as character class range, but s-[ is invalid due to the fact that s is AFTER [ in encoding. (Building message is just print STDERR "Building: $str\n"; added to sub _build_re in Regexp/Assemble.pm line 1004., to make debugging easier).