const regex = /(className|class)="(?:block|block\s([^"]*)|([^"]*)\sblock|([^"]*)\sblock(?=\s)([^"]*))"/gi;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('(className|class)="(?:block|block\\s([^"]*)|([^"]*)\\sblock|([^"]*)\\sblock(?=\\s)([^"]*))"', 'gi')
const str = `class="block underline primary blockOverlay"
class="name block"
class="block name"
className="text-center block primary-dark blockout__form"
class="grey bg-black inline-block block blocktitle blockouts-intro"
class="grey bg-black inline-block block-title blockouts-intro"
class="grey bg-black inline-block block title-block blockouts-intro"
class="block"`;
const subst = `\1="\2\3\4\5"`;
// 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