CharData : /[^<&]*/ { my $s = $item[1]; if($s =~ /(.*)(]]>.*)/s) { $s = $1; $text = $2 . $text; Parse::RecDescent::LineCounter::resync($thisline); } $return = XML::CharData->new($s); }