$re = '/^.*(([\w\d]{5}-?){3}).*$/mi';
$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 ';
$subst = "$1";
$result = preg_replace($re, $subst, $str);
echo "The result of the substitution is ".$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 PHP, please visit: http://php.net/manual/en/ref.pcre.php