title: What does the caret ^ in (?^:…) mean in the string form of a Perl qr// Regex?
body: <p>Consider this script, which is based on an answer to
  <a href="https://stackoverflow.com/q/267399">SO 267399</a> about parsing Roman
  numbers, though the parsing of Roman numbers is incidental to this
  question.</p>
  
  <pre><code>#!/usr/bin/env perl
  #
  # Based on answer to SO 0026-7399
  
  use warnings;
  use strict;
  
  my $qr1 = qr/(?i:M{1,3})/;
  my $qr2 = qr/(?i:C[MD]|D?C{1,3})/;
  my $qr3 = qr/(?i:X[CL]|L?X{1,3})/;
  my $qr4 = qr/(?i:I[XV]|V?I{1,3})/;
  
  print "1000s: $qr1\n";
  print " 100s: $qr2\n";
  print "  10s: $qr3\n";
  print "   1s: $qr4\n";
  
  # This $qr is too simple — it matches the empty string
  #my $qr = qr/($qr1?$qr2?$qr3?$qr4?)/;
  
  my $qr = qr/\b((?:$qr1$qr2?$qr3?$qr4?)|(?:$qr2$qr3?$qr4?)|(?:$qr3$qr4?)|(?:$qr4))\b/;
  
  print " Full: $qr\n";
  
  while (&lt;&gt;)
  {
      chomp;
      print " Line: [$_]\n";
      while ($_ =~ m/$qr/g)
      {
          print "Match: [$1] found in [$_] using qr//\n";
      }
  }
  </code></pre>
  
  <p>Given the data file below, the first three lines each contain a Roman number.</p>
  
  <pre><code>mix in here
  no mix in here
  mmmcmlxxxix
  minimum
  </code></pre>
  
  <p>When run with (home-built) Perl 5.22.0 on a Mac now running macOS Sierra
  10.12.4, I get output like this (but the version of Perl is not
  critical):</p>
  
  <pre><code>1000s: (?^:(?i:M{1,3}))
   100s: (?^:(?i:C[MD]|D?C{1,3}))
    10s: (?^:(?i:X[CL]|L?X{1,3}))
     1s: (?^:(?i:I[XV]|V?I{1,3}))
   Full: (?^:\b((?:(?^:(?i:M{1,3}))(?^:(?i:C[MD]|D?C{1,3}))?(?^:(?i:X[CL]|L?X{1,3}))?(?^:(?i:I[XV]|V?I{1,3}))?)|(?:(?^:(?i:C[MD]|D?C{1,3}))(?^:(?i:X[CL]|L?X{1,3}))?(?^:(?i:I[XV]|V?I{1,3}))?)|(?:(?^:(?i:X[CL]|L?X{1,3}))(?^:(?i:I[XV]|V?I{1,3}))?)|(?:(?^:(?i:I[XV]|V?I{1,3}))))\b)
   Line: [mix in here]
  Match: [mix] found in [mix in here] using qr//
   Line: [no mix in here]
  Match: [mix] found in [no mix in here] using qr//
   Line: [mmmcmlxxxix]
  Match: [mmmcmlxxxix] found in [mmmcmlxxxix] using qr//
   Line: [minimum]
  </code></pre>
  
  <p>The only part of the output that I don't understand is the caret <code>^</code> in the
  <code>(?^:…)</code> notation.</p>
  
  <p>I've looked at Perl documentation for
  <a href="http://perldoc.perl.org/perlre.html" rel="noreferrer"><code>perlre</code></a> and
  <a href="http://perldoc.perl.org/perlreref.html" rel="noreferrer"><code>perlref</code></a> and even the section of
  <a href="http://perldoc.perl.org/perlop.html#Regexp-Quote-Like-Operators" rel="noreferrer"><code>perlop</code></a>
  on 'Regex quote-like operators' without seeing this exemplified or
  explained.  (I also checked the resources suggested by SO when you ask a question about regexes.  The <code>(?^:</code> string is carefully designed to give search engines conniptions.)</p>
  
  <p>There are two parts to my question:</p>
  
  <ol>
  <li>What is the significance of the caret in <code>(?^:…)</code> and what caused
  it to be added to the <code>qr//</code> regexes?</li>
  <li>If it matters, how do you stop it from being added to the <code>qr//</code> regexes?</li>
  </ol>