title: My regular expression won't match and I can't identify why
body: <p>Here is an example of the text I am trying to match within a scalar:</p>
  
  <pre><code>1 N [51]Gone Girl [52]Fox $37,513,109 - 3,014 - $12,446 $37,513,109 $61   1
  2 N [53]Annabelle [54]WB (NL) $37,134,255 - 3,185 - $11,659 $37,134,255   $6.5 1
  3 1 [55]The Equalizer [56]Sony $18,750,375 -45.1% 3,236 - $5,794   $64,236,992 $55 2
  4 3 [57]The Boxtrolls [58]Focus $11,979,588 -30.7% 3,464 - $3,458   $32,093,796 $60 2
  5 2 [59]The Maze Runner [60]Fox $11,634,764 -33.3% 3,605 -33 $3,227   $73,556,159 $34 3
  6 N [61]Left Behind (2014) [62]Free $6,300,147 - 1,825 - $3,452   $6,300,147 $16 1 
  7 4 [63]This is Where I Leave You [64]WB $4,009,345 -41.8% 2,735 -133   $1,466 $29,012,573 $19.8 3
  8 5 [65]Dolphin Tale 2 [66]WB $3,422,377 -28.5% 2,790 -586 $1,227   $37,866,130 $36 4
  </code></pre>
  
  <p>Here is the regular expression I was using that won't seem to match up. Can anyone identify why?</p>
  
  <pre><code>if ($allData =~ /(\d+)\s+(\d+|[N])\s+(\[\d+\])(.+)\s+(\[\d+\])(.+)\s+(\$\.+)\s+(\-|\+\d+\.\d+%|\-\d+\.\d+%)\s+(\d+)\s+(\-\d+|\-|\+\d+)\s+(\$\.+)\s+(\$\.+)\s+(\.+)\s+(\d+)/g)
  {
  
  $current[$i] = $1;
  $last[$i] = $2;
  $title[$i] = $4;
  $week[$i] = $7;
  $cume[$i] = $12;
  
  printf("%-4s%-4s%-35s%-10s%-10s", $current[$i], $last[$i], $title[$i], $week[$i], $cume[$i]);
  
  if ($last[$i] ne '-'){
      $gain = $last[$i] - $current[$i];
  }
  
  if ($gain &lt; $bigloss){
      $bigloss = $gain;
      $losstitle = $title[$i];
  }
  
  if ($gain &gt; $biggain){
      $biggain = $gain;
      $gaintitle = $title[$i];
  }
  
  if ($last[$i] eq '-'){
  
      if ($current[$i] &lt; $bigdebut){
          $bigdebut = $current[$i];
          $bigdebuttitle = $title[$i];
      }
  
      if ($current[$i] &gt; $weakdebut){
          $weakdebut = $current[$i];
          $weakdebuttitle = $title[$i];
      }
  }
  $i++;
  }
  </code></pre>