in reply to \1, \2, \3, ... inside of a character class

I'm not going to answer the question as asked (smarter people will do that). However, I'm wondering what you're doing that requires this. It looks like you're trying to match mis-quoted items. Why aren't you using something like Text::Balanced or Regex::Common?

------
We are the carpenters and bricklayers of the Information Age.

Then there are Damian modules.... *sigh* ... that's not about being less-lazy -- that's about being on some really good drugs -- you know, there is no spoon. - flyingmoose

I shouldn't have to say this, but any code, unless otherwise stated, is untested

  • Comment on Re: \1, \2, \3, ... inside of a character class

Replies are listed 'Best First'.
Re^2: \1, \2, \3, ... inside of a character class
by ccn (Vicar) on Aug 12, 2004 at 18:39 UTC
    Personally I have no need to use backreferences in character classes. But I saw the following code:
    sub eraseCommet { my($all, $comment) = @_; return $all if !$comment; } s/(<(\/)?((!--)|(script)|(style)|\w+)(?(4).*?-->|(\s+\w+(?:\s*=\s*(["' +])?(?(8)[^\8]+?\8|\S+?(?=[>\s])))?)*?\s*\/?>(?(5).*?<\/script>|(?(6). +*?<\/style>))))/eraseCommet($1,$4)/gixse;
    That weird regex (I don't like it) was written by one person who want to eliminate comments from HTML. He knew about HTML::Parser, but he wanted to make it with regexps for his fun. I was trying to find a valid HTML where that code fails and I noted that he used \8 as a backreference within a character class. I knew that one can use variables [$var] but using of [^\8] appeared alarming for me. Such way I obtained that probably undocumented behavior.