$re = '/(\\\\usepackage{(?:tikz|pgfplots)}|\\\\(?:tikzset|pgfplotsset){(?:[^{}]+|{(?:[^{}]+|{(?:[^{}]+|{[^{}]+})+})+})+}|\\\\(?:usetikzlibrary|usepgfplotslibrary){[\w\.,]+}|\\\\definecolor{\w+}{\w+}{[^}]+}|\\\\colorlet{\w+}{{[^}]+}})/m';
$str = '\\documentclass{article}
\\usepackage{tikz}
\\usetikzlibrary{decorations.markings}
\\tikzset{
->-/.style={
postaction=decorate,
decoration={markings,mark=at position #1 with \\arrow{>}}
}
}
\\begin{document}
\\begin{center}
\\begin{tikzpicture}
\\draw[->-=0.5] (0,0) -- (3,-2);
\\end{tikzpicture}
\\end{center}
\\end{document}';
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