 <p>The CPAN module <a href="https://metacpan.org/module/GSULLIVAN/YAPE-Regex-Explain-4.01/Explain.pm">YAPE::Regex::Explain</a> can be used to parse and explain Perl regexes that you don't understand. Here is the output for your first regex:</p> <pre><code>(?-imsx:^(\d+)_[^,]+,"",(.+)"NR"(.+)"0","","") matches as follows: NODE EXPLANATION ---------------------------------------------------------------------- (?-imsx: group, but do not capture (case-sensitive) (with ^ and $ matching normally) (with . not matching \n) (matching whitespace and # normally): ---------------------------------------------------------------------- ^ the beginning of the string ---------------------------------------------------------------------- ( group and capture to \1: ---------------------------------------------------------------------- \d+ digits (0-9) (1 or more times (matching the most amount possible)) ---------------------------------------------------------------------- ) end of \1 ---------------------------------------------------------------------- _ '_' ---------------------------------------------------------------------- [^,]+ any character except: ',' (1 or more times (matching the most amount possible)) ---------------------------------------------------------------------- ,"", ',"",' ---------------------------------------------------------------------- ( group and capture to \2: ---------------------------------------------------------------------- .+ any character except \n (1 or more times (matching the most amount possible)) ---------------------------------------------------------------------- ) end of \2 ---------------------------------------------------------------------- "NR" '"NR"' ---------------------------------------------------------------------- ( group and capture to \3: ---------------------------------------------------------------------- .+ any character except \n (1 or more times (matching the most amount possible)) ---------------------------------------------------------------------- ) end of \3 ---------------------------------------------------------------------- "0","","" '"0","",""' ---------------------------------------------------------------------- ) end of grouping ---------------------------------------------------------------------- </code></pre> <p>You can use the module to parse your second regex as well (I won't dump it here since the explanation will be very long and very redundant.) But if you want to give it a shot, try this:</p> <pre><code>use strict; use warnings; use YAPE::Regex::Explain; my $re = qr/^[^_]+_[^,]+,"([\d\/]+)","[^"]+","[^"]+","[^"]+","[^"]+","[^"]+", "[^"]+","[^"]+","[^"]+","[^"]+","[^"]+","[^"]+","[^"]+",.+/x; print YAPE::Regex::Explain-&gt;new( $re )-&gt;explain; </code></pre>