const regex = /^.*(([\w\d]{5}-?){3}).*$/gmi;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('^.*(([\\w\\d]{5}-?){3}).*$', 'gmi')
const str = `12 DIG ARTIFEX Bundle 3 9 Clues 2: The Ward STEAM 5MQ7W-N7PAT-V0QQL YES Mark as used
13 DIG ARTIFEX Bundle 3 9 Clues: The Secret of Serpent Creek STEAM PEMFX-48T80-20ANW YES Mark as used
14 DIG Super Bundle 76 HellAngel STEAM FENFR-LQ0N3-TNLR0 YES Mark as used
1 DIG Points Purchase Monsti STEAM BCI7T-Z9P4Q-LGJ9T YES Mark as used
2 DIG Super Bundle 74 Wooden Floor 2 - Resurrection STEAM LPL6L-2LJ74-GWG3W YES
3 DIG Super Bundle 74 Warriors of Vilvatikta STEAM 90LPI-T5KC2-C4W6M YES
4 DIG Super Bundle 74 Final Quest STEAM IJRID-JYGH3-3M5C7 YES
5 DIG Super Bundle 74 Gold Rush! - Anniversary STEAM 6D7DA-8EZZP-DET6A YES
6 DIG Super Bundle 75 Sleeping Valley STEAM 8AFHR-C0X43-DAG74 YES `;
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