const regex = /(ABC[#:*$]+(?:\w+[#:*$]+){2}|DEF[#:*$]+(?:\w+[#:*$]+){3})([^#:*$]+)(.+)/g;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('(ABC[#:*$]+(?:\\w+[#:*$]+){2}|DEF[#:*$]+(?:\\w+[#:*$]+){3})([^#:*$]+)(.+)', 'g')
const str = `ABC#12#3#LINE1####1234678985\$
DEF#XY#Z:1234:1234561230\$
ABC#12#3#LINE TWO####1234678985\$
DEF#XY#Z:1234:4564561230\$
ABC#12#3#3RD LINE####1234678985\$
DEF#XY#Z*1234:7894561230\$`;
const subst = `\1 + replacement + \3`;
// 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