$re = '/(?(DEFINE)(?\'comment\'\/\*(?!\*\/)[\/s\/S]*?\*\/|\/\/.*+)
(?\'quoted_string\'\"[^\"]*\")
(?\'id\'\b[a-zA-Z_]\w*+\b)
(?\'id_alias\'(?&id))
)(?&comment)(*SKIP)(*F)|(?"ed_string)(*SKIP)(*F)|(?&id_alias)/m';
$str = '// function example
#include <iostream>
using namespace std;
int addition (int a, int b)
{
int r;
r=a+b;
return r;
}
int main ()
{
int z;
z = addition (5,3);
cout << "The result is " << z;
}';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 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