use strict;
my $str = '// Basic - Repeat Delimiters
/^((?:([gimsuy])(?!.*\\\\2))*)/gm
// Basic - Nested - Captured | Non-captured
^(?:(// +)(?:(@noframes)([ \\t]*$)|(@(?:include|match|grant|require))([\\t ]+)(?:(https?.+?)|(.+))(\\**)([ \\t]*)|(^//[ \\t]+)(@(?:author|name(?:space)?|version|description))([ \\t]+)(.+?)([ \\t]*)|(^//[ \\t]+)(@resource)([ \\t]+)(\\S+)([ \\t]+)(\\S+)([ \\t]*))(\\n(?://[ \\t]*\\n)*))
// Basic - Captured | Non-captured | Lookbehind Positive
(?<=^[ \\t]*)(//)([ ])(?<capture_name>)(Case:)([ \\t]+)(.*\\S)([ \\t]*)?$
// Complex
(?<=^[ \\t]*)(//)([ ])(Case:)([ \\t]+)(.*\\S)([ \\t]*)?$
^(?:(?:(?:[0]*|[0]*1)(?=$))|(?:(?:[0]*|[0]*1(?[1-9]+)))?[\\.][\\d]+)$
^((?:[ ]{2})*[ ])([#])([ ]+)(?:(@param)([ ]+)(?:([\\$][\\d\\*@$?&]+))(\\??)(?:(:)([\\t ]+)(\\w+))?(?:([ ]+)([=][>])([ ]+)(?:([A-Za-z_-](?:[<][^\\n>]+[>]|[A-Za-z_-]*[^\\n]*?))(?:([ ]+)(?:(@desc)|([<]\\?))([ ]+)(.+?))?))([ ]*)|(@return)(?:([ ]+)([=][>])([ ]+)(?:([A-Za-z_][A-Za-z_]*)(.*?)(?:([ ]+)(?:(@desc)|([<]\\?))([ ]+)(.+?))?)))$';
my $regex = qr/(?<!(?:\\{2})*\\)(?:(?<begin_capture>[\(])(?<begin_capture_modifier>(?=[<][a-z_A-Z]+[>])|(?!\?(?:<?[=!]|:)))|(?<begin_non_capture>\((?=\?(?:<?[=!]|:))))|(?:(?<end>\)))/mp;
my $subst = '\\n - $begin_capture';
my $result = $str =~ s/$regex/$subst/rg;
print "The result of the substitution is' $result\n";
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Perl, please visit: http://perldoc.perl.org/perlre.html