$re = '/^(?=.{58}2\)\?\.\*\\\\.{186}\\\\2\\\\\(\)\{2\}\.\*\/$)((.*)(\2\2)?.*\/\2\^\2\(\2\?=\2\.\2\{58\2\}2\2\\\\\2\)\2\\\\\2\?\2\\\\\2\.\2\\\\\2\*\2\\\\\2\\\\\2\.\2\{186\2\}\2\\\\\2\\\\2\2\\\\\2\\\\\2\\\\\2\(\2\\\\\2\)\2\\\\\2\{2\2\\\\\2\}\2\\\\\2\.\2\\\\\2\*\2\\\\\2\/\2\$\2\)\2\(\2\(\2\.\2\*\2\)\2\(){2}.*/';
$str = '/^(?=.{58}2\\)\\?\\.\\*\\\\.{186}\\\\2\\\\\\(\\)\\{2\\}\\.\\*\\/$)((.*)(XXX2)?.*\\/^(?=.{58}2\\)\\?\\.\\*\\\\.{186}\\\\2\\\\\\(\\)\\{2\\}\\.\\*\\/$)((.*)(XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\\2\\(){2}.*/';
preg_match($re, $str, $matches, PREG_OFFSET_CAPTURE, 0);
// Print the entire match result
var_dump($matches);
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 PHP, please visit: http://php.net/manual/en/ref.pcre.php