c:\@Work\Perl\monks>perl -wMstrict -le "use YAPE::Regex::Explain; ;; print YAPE::Regex::Explain->new(qr{ (?: [|] [^|]*){4} \z }xms)->explain; " The regular expression: (?msx-i: (?: [|] [^|]*){4} \z ) matches as follows: NODE EXPLANATION ---------------------------------------------------------------------- (?msx-i: group, but do not capture (with ^ and $ matching start and end of line) (with . matching \n) (disregarding whitespace and comments) (case-sensitive): ---------------------------------------------------------------------- (?: group, but do not capture (4 times): ---------------------------------------------------------------------- [|] any character of: '|' ---------------------------------------------------------------------- [^|]* any character except: '|' (0 or more times (matching the most amount possible)) ---------------------------------------------------------------------- ){4} end of grouping ---------------------------------------------------------------------- \z the end of the string ---------------------------------------------------------------------- ) end of grouping ----------------------------------------------------------------------