const regex = /(<cfldap[^>]* name ?= ?")(.*?)("[^>]*)( sort ?= ?"(.*?)")(.*?>)/gi;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('(<cfldap[^>]* name ?= ?")(.*?)("[^>]*)( sort ?= ?"(.*?)")(.*?>)', 'gi')
const str = `<!--- petofma 20090716: new CED LDAP server now wants applications to authenticate! --->
<CFLDAP server="#session.comldapserver#" port="#session.comldapport#" action="QUERY" name="results" start="ou=People, o=#session.comldaproot#"
username="#server.comLdapLogin#" password="#server.comLdapPass#"
scope="onelevel" filter="(&#filterstring#(recordStatus=a)#Iif(IsDefined("dgfish_only"),DE("(sourceOrganisation=COM)(dg=MARE)"),DE(""))#)" sort="uid" attributes="dn,employeeNumber,ecSYSPERNumber,gestelNumber,uid,title,cn,dg,departmentNumber,telephoneNumber,facsimilenumber,l,mail,physicalDeliveryOfficeName,sourceOrganisation,employeeType,contractExpiryDate,recordStatus,modifytimestamp,source,manager">
<CFOUTPUT>
<P>Found <b>#results.RecordCount# User#Iif(results.RecordCount EQ 1,DE(""),DE("s"))#</b> matching your search criteria:
</CFOUTPUT>
<cfif IsDebugMode()>
<cfdump var=#results#>
</cfif>
`;
const subst = `$1unsortedResults$3$6\n<cfquery dbtype="query" name="$2">SELECT * FROM unsortedResults ORDER BY $5</cfquery>\n`;
// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);
console.log('Substitution result: ', 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 JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions