Problem with a regular expression



Why isn't the following creating a match? I'm trying to get it to return everything between the <script> tags but it's not. The commented out regex is working in that it finds everything from the beginning <script> tag to the ending </script> tag. But it's not returning any matches. I've been banging my head up against the wall on this for hours and I'm at a total loss.

Any help would be greatly appreciated!

thnx,
Christoph


var bob = '<table> <tr> <td valign="top">Revenue</td> <td valign="top"> <input type="checkbox" id="RevenueCheckbox" name="RevenueCheckbox" value="1" onclick="processCheckbox( this );"> </td> <td valign="top"> <select id="RevenueSelect" size="1" style="display: none" onchange="setSelectedOptions( this );"> <option value="" selected>Specify Filter</option> <option value="">0k-200k</option> <option value="">200k-400k</option> <option value="">400k-800k</option> <option value="">800k-2.5B</option> </select> </td> </tr> <tr> <td valign="top">VNE Version Number</td> <td valign="top"> <input type="checkbox" id="VNE_Version_NumberCheckbox" name="VNEVersionNumberCheckbox" value="1" onclick="processCheckbox( this );"> </td> <td valign="top"> <select id="VNE_Version_NumberSelect" size="1" style="display: none" onchange="setSelectedOptions( this );"> <option value="" selected>Specify Filter</option> <option value="">0-1</option> <option value="">1-1.5</option> <option value="">1.5-2</option> <option value="">2-2.5</option> <option value="">2.5-4</option> </select> </td> </tr> <tr> <td></td> <td colspan="2"> <input type="button" name="ResetDefaults" value="Reset Defaults" onclick="setDefaultSelections();"> </td> </tr> </table> <br><br> <script type="text/javascript"> var aSelectedOptions = new Array(); var oGroupFilters = null; var oDefaultSelections = null; var aSelectedFilters = {}; function processCheckbox( oControl ) { var sWorkingId = oControl.id.replace( new RegExp( "Checkbox$", "" ), "" ); if( oSelect = document.getElementById( sWorkingId + "Select" )) { if( oControl.checked ) { oSelect.style.display = ""; } else { oSelect.style.display = "none"; removeSelectedOptions( oSelect ); } } } function removeSelectedOptions( oControl ) { var sWorkingId = oControl.id.replace( new RegExp( "Select$", "" ), "" ); sWorkingId = sWorkingId.replace( "_", " " ); aSelectedOptions[sWorkingId] = new Array(); for( i = 0; i < oControl.options.length; i++ ) { oControl.options[i].selected = false; } } function setSelectedOptions( oControl ) { var sWorkingId = oControl.id.replace( new RegExp( "Select$", "" ), "" ); sWorkingId = sWorkingId.replace( "_", " " ); aSelectedOptions[sWorkingId] = new Array(); for( i = 0; i < oControl.options.length; i++ ) { if( oControl.options[i].selected ) { var key = oControl.options[i].value; aSelectedOptions[sWorkingId].push( key ); } } console.log( "aSelectedOptions[" + sWorkingId + "] now as [" + aSelectedOptions[sWorkingId].length + "] options\n" ); } function setFilterOptions() { var whatever; if(( aSelectedOptions ) && ( oGroupFilters )) { aSelectedFilters = {}; for( var soKey in aSelectedOptions ) { var aSelectedTmp = aSelectedOptions[soKey]; var oFilterTmp = oGroupFilters[soKey]; for( var a = 0; a < aSelectedTmp.length; a++ ) { console.log( "Looking to match value [" + soKey + "][" + aSelectedTmp[a] + "]\n" ); for( var b in oFilterTmp ) { if( aSelectedTmp[a] == oFilterTmp[b]["fieldValue"] ) { if( !aSelectedFilters[soKey] ) { aSelectedFilters[soKey] = {}; } var tmpKey = aSelectedTmp[a]; aSelectedFilters[soKey][tmpKey] = { filterType : oFilterTmp[b]["filterType"], fieldName : oFilterTmp[b]["fieldName"], fieldValueLabel : oFilterTmp[b]["fieldLabel"], fieldValue : oFilterTmp[b]["fieldValue"], constraint : oFilterTmp[b]["constraint"] }; break; } } } } console.log( "aSelectedFilters: " + aSelectedFilters.toSource() + "\n" ); } } function setDefaultSelections() { if( oDefaultSelections ) { for( dsKey in oDefaultSelections ) { var sWorkingId = dsKey.replace( " ", "_" ); if( oSelect = document.getElementById( sWorkingId + "Select" )) { aSelectedOptions[dsKey] = new Array(); var oTmp = oDefaultSelections[dsKey]; for( a in oTmp ) { for( i = 0; i < oSelect.options.length; i++ ) { oSelect.options[i].selected = false; if( oTmp[a]["fieldValue"] == oSelect.options[i].value ) { oSelect.options[i].selected = true; aSelectedOptions[dsKey].push( oSelect.options[i].value ); break; } } } oSelect.style.display = ""; } if( oCheckbox = document.getElementById( sWorkingId + "Checkbox" )) { oCheckbox.checked = true; } } } else { document.getElementById("RevenueCheckbox").checked = false; oSelect = document.getElementById("RevenueSelect"); oSelect.style.display = "none"; removeSelectedOptions( oSelect ); document.getElementById("VNE_Version_NumberCheckbox").checked = false; oSelect = document.getElementById("VNE_Version_NumberSelect"); oSelect.style.display = "none"; removeSelectedOptions( oSelect ); } console.log( aSelectedOptions.toString()); } setDefaultSelections(); <' + '/script>';


//var regex = new RegExp( '<script[^>]*>([^<]|<(?!/script))*<' + '/script>', 'i' );
var regex = new RegExp( '<script.*?>(.*?)<' + '/script>', 'i' );
var matches = bob.match( regex );
alert( regex + '\n0: ' + matches[0] + '\n1: ' + matches[1] );


.