$re = '/"(?=(?:(?:[^<](?!%>))*(?:<%[^%]+%>)(?:[^<](?!%>))*)*$)/';
$str = 'select "SomethingQuoted", "SomethingQuoted" , "SomethingQuoted" , "SomethingQuoted" to_char(max(decode( landing_name,\'DX_L_MDC_RDM\', BATCH_ID , -1))) as MDC_RDM_BATCH_ID
,to_char(max(decode( landing_name,\'DX_L_ESB_SPARK\', BATCH_ID , -1))) as ESB_SPARK_BATCH_ID
from (
select max(u.batch_id) as BATCH_ID , u.landing_name
from "<%=odiRef.getSchemaName("DJC_METADATA","D")%> .u$dx_batch_log u
"SomethingQuoted"
join <%=odiRef.getSchemaName("DJC_METADATA","D")%> .djc$dx_landing la
on u.landing_name = la.landing_name
and u.batch_id >= la.last_deleted_batch_id
join <%=odiRef.getSchemaName("DJC_METADATA","D")%> .djc$load_log lo
on u.load_id = lo.load_id
and lo.status = \'COMPLETE\'
and lo.load_id > 0
"SomethingQuoted"
"SomethingQuoted"
where u.landing_name in (\'DX_L_MDC_RDM\', \'DX_L_ESB_SPARK\')
and u.chkp_status = \'FINISHED\'
group by u.landing_name
) "<%==" "=%>
';
$subst = "#";
$result = preg_replace($re, $subst, $str);
echo "The result of the substitution is ".$result;
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