$re = '/<emphasis>(.*) Code<\/emphasis>\s*<\/para>\s*<program ?(language="(.*)")?>\s*(.*)<\/program>/msU';
$str = ' <section id="foo">
<title>Code about Bears</title>
<para>Words</para>
<para><emphasis>Python Code</emphasis></para>
<program language="py">import bears</program>
<para><emphasis>JavaScript Code</emphasis></para>
<program language="js">var bear = require(\'bears\');</program>
<section id="bar">
<title>Code about Bear Cubs</title>
<para>Words</para>
<para><emphasis>Python Code</emphasis></para>
<program language="py">import cubs</program>
<para><emphasis>JavaScript Code</emphasis></para>
<program language="js">var cub = require(\'cubs\');</program>
</section>
</section>';
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