<?php
// This causes a segmentation fault in libpcre3 when run with the 
// PHP 5.2.0-8 command-line interpreter

$htmlContent = '<xxxx>
<xxxx><?php // -*- xxx -*-
/* xxxxxx xxxxxxx xxxx xxx xxxxxxxxx xx $xxxx. xxxxx xx xxxx-xxxxxxxx xxx
   xxxx xxxxx xxxx x xxxxx, xx xxxxxx "/" xx xxxxxx xxxxxxx xxx xxxxx
   xxxx. */
xxxxxxxx /*xxxx*/ xxxxxxx(/*xxxxxx*/ $xxx, $xxxxxx = \'\') {
  xxxx "<xx>xxxxxxxxx: $xxx</xx>\x";
  // xxxx xxxxxxxxx xxxxxxxx  xx ($xxx == \'/\') $xxx = \'\';
  $xx = xxxxxxx(xxxxx . $xxx); xx (!$xx) xxxxxx;
  $xxxxxxxxx = xxxxx; $xxxxx = xxxxx();
  xxxxx ($xx && xxxxx !== ($x = xxxxxxx($xx))) {
    xx ($x{0} == \'.\' || xx_xxxx(xxxxx . "$xxx/$x")) xxxxxxxx;
    xx (xx_xxx(xxxxx . "$xxx/$x")) {
      $xxxxx[] = $x;
      xxxxxxxx;
    }
    xx (xxxxxx($x, -22) != \'.xxxxx_xxxxxxx.xxxxxxx\'
        && xxxxxx($x, -26) != \'.xxxxx-xxx_xxxxxxx.xxxxxxx\')
      xxxxxxxx;
    xx (xxxxxx($x, 0, 6) != \'xxxxx.\') {
      $xxxxx[] = $x;
      xxxxxxxx;
    }
    // xxxxx xxxx xxxxxxx, xxxxxx x <xx> xxx xx
    xxxx $xxxxxx, \'<xx>\', xxxxxxxxxxx("$xxx/$x", "$xxx/");
    $xxxxxxxxx = xxxx;
  }
  xxxxxxxx($xx);

  xx (xxxxx($xxxxx)) {
    xx ($xxxxxxxxx) xxxx "</xx>\x";
    xxxxxx;
  }
  xx ($xxxxxxxxx) xxxx "<xx/>\x";

  // xxx xxxxxxxxx xxxxxxxx xxxxxxx xxxxx, xxxxxx xxxxxxxxxxx xxx xxxx
  xxxx $xxxxxx, "<xx xxxxx=\"xxxxxxx\">\x";
  xxxx($xxxxx);
  xxxxxxx ($xxxxx xx $x) {
    xx (xx_xxx(xxxxx . "$xxx/$x"))
      xxxxxxx("$xxx/$x", "$xxxxxx  ");
    xxxx
      xxxx $xxxxxx, \'  <xx>\', xxxxxxxxxxx("$xxx/$x"), "</xx>\x";
  }
  xxxx $xxxxxx, "</xx>\x";
  xx ($xxxxxxxxx) xxxx $xxxxxx, "</xx>\x";
}
//______________________________________________________________________

/* xxxxxx x xxxxxx xxxx xx xxxxxx xxx xxx $xxxxxxxx. $xxxxxxxx xxxx xx x
   _xxxxxxx.xxxxxxx xxxx. xx xxx xxxx xxxx xx xxx xxxxxx, xxxx xxx xxxxxxxx
   xx xxx xxxxx xxx xx xxx xxxxxxxxx xxxxxxxx xxxxxxxx. xxx xxxxxx xxxxxx
   xxxx xx $xxxxxxxx xxxx xxx "_xxxxxxx.xxxxxxx" xxxxxxx, xxxxxx xxxx xxx
   xxxxxxxx xxxx xx xxxxxxxxxx x $xxxx. */
xxxxxxxx /*xxxxxx*/ xxxxxxxxxxx(/*xxxxxx*/ $xxxxxxxx, $xxxx = xxxxx) {
  $xxxx = xxxxxx($xxxxxxxx, 0, -16); // xxxxxx "_xxxxxxx.xxxxxxx" xxxx xxx
  xxxx("xxxxxxxxxxxxx $xxxx");
  xx ($xxxx === xxxxx) {
    $xxxx = $xxxx;
    xx (xxxxxx($xxxx, -16) == \'.xxxxx.xxxxx-xxx\')
      $xxxx = xxxxxx($xxxx, 0, -10); // xxxxxx .xxxxx-xxx xx xxxxxxxx xx .xxxxx
  }

  /* xxxx .xxxxxxx xxxxxxxx. xx xxxx xxx xxxxxxxxx xxxxx xx xxxxx:
     xxxxxxx /xxx/xxxxx.xxxxx.xx.xxxxx
     xxxxxxxxx /xxx/xxxxx.xxxxx.xxxxx */
  xxxxxx $xxxxxxxxx = xxxx;
  xx ($xxxxxxxxx === xxxx) $xxxxxxxxx = xxxxx_xxxx(xxxxxxx(\' \', xxxxxxxxx));
  $xxxxxxxx = \'\';
  $xxxxxxx = xxxxxxxxxxxx_xxxxxxxxxxx(xxxxx . $xxxxxxxx);
  xxxxxxx ($xxxxxxx xx $xxxx => $xxxxx) {
    xxxx("xx $xxxx => $xxxxx");
    xx (xxxxxx($xxxx, 0, xxxxxx($xxxx)) != $xxxx) xxxxxxxx;
    $xxxxxxxxxx = xxxxxx($xxxx, xxxxxx($xxxx));
    xxxx("xx $xxxx => $xxxxx  \'$xxxxxxxxxx\'");
    xx ($xxxxx == \'xxxxxxxxx\' && $xxxxxxxxxx == \'.xxxx\') {
      // xxxxxx-xxxxxxxx xxxx xx xxxxxx: xxxx xxxxx xxx <xxxxx> xxxxxxxx
      $xxxxxxxx = xxxxxxxxxxxx($xxxx);
      xxxxx;
    } xxxx xx ($xxxxx == \'xxxxxxx\' && $xxxxxxxxxx{0} == \'.\'
               && xxxxxx($xxxxxxxxxx, -5) == \'.xxxx\') {
      /* xxxxx-xxxxxxxx: xxxxxxx xxx xxxxxxxxxx xxxxxxxxx\' xxxx xxxx xxx
         xxxxxxxxx xxxxxxxx xxxxxxxx */
      $xxxx = xxxxxx($xxxxxxxxxx, 1, -5);
      xx (xxxxx_xxx_xxxxxx($xxxx, $xxxxxxxxx))
        $xxxxxxxx .= "<$xxxx>" . xxxxxxxxxxxx($xxxx) . "</$xxxx>";
      xxxx("   xxxx=\'$xxxx\'  $xxxxxxxx");
    }
  }

  $xxxxx = xxxxxxxxxxxxxxxx($xxxx);
  xx ($xxxxxxxx == \'\') $xxxxxxxx = $xxxxx;
  xxxxxx "<x xxxx=\"/~xxxxxxx/xx$xxxxx\">$xxxxxxxx</x>";

  //  xxxxxx "<x xxxx=\"/~xxxxxxx/xx$xxxxx\">$xxxxx</x>";
}
//______________________________________________________________________

xxxxxxxx xxxxxxxxxxxx(/*xxxxxx*/ $xxxxxxxx) {
  $xxxx = xxxx_xxx_xxxxxxxx(xxxxx . $xxxxxxxx);
  xx (xxxx_xxxxx(\'%<xxxxx>(.*)</xxxxx>%\', $xxxx, $x) == 1)
    xxxxxx xxxxxxxxxxxxxxxx($xxxxxxxx);
  xxxxxx xxxxxxxxxxxxxxxx($xxxxxxxx);
}
//______________________________________________________________________

xxxxxx_xxxxxxxxxxxxx($xxxx[\'xxxx\'], \'/xxxxx.xxxxxxx\');
xxxx "<xx>\x";
xxxxxxx(\'/\');
xxxx "</xx>\x";
';
$rePhp = '(?:<\?(?:php)?\s(?:[^?]|\?(?!>))*\?>\n?)*';
preg_match("%^($rePhp)((?Us).*)($rePhp)\$%", $htmlContent, $m);
echo "ok\n";
?>