const regex = /(^nvsm)(\-)(apis|dshm|cli)(\-|\_)(\d{2}|\(\d{2}\))(\.)(0?[1-9]|1[012])(\.|\-)(\d{1}|\d{2})(\-|\_|\.)(\d{1}|\d{2}|all|el\d{1})(\.)(el\d{1}|(deb)|(noarch))(|(\.)((x86_64)|(rpm))(\.)(rpm))$/gim;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('(^nvsm)(\\-)(apis|dshm|cli)(\\-|\\_)(\\d{2}|\\(\\d{2}\\))(\\.)(0?[1-9]|1[012])(\\.|\\-)(\\d{1}|\\d{2})(\\-|\\_|\\.)(\\d{1}|\\d{2}|all|el\\d{1})(\\.)(el\\d{1}|(deb)|(noarch))(|(\\.)((x86_64)|(rpm))(\\.)(rpm))$', 'gim')
const str = `nvsm-dshm-18.12-2.el7.noarch.rpm`;
const subst = `$1`;
// 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