const regex = /(?:DHI?-)?(?:IPC|HAC)-HDB?W\d+[A-Z]+\K(?:P-0\d{1,2}|P)/g;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('(?:DHI?-)?(?:IPC|HAC)-HDB?W\\d+[A-Z]+\\K(?:P-0\\d{1,2}|P)', 'g')
const str = `DH-HAC-HDBW3802EP-Z
DH-HAC-HDBW3802EP-ZH
DH-HAC-HDW1000MP-028
DH-HAC-HDW1000RP-028
DH-HAC-HDW1100EMP-02
DH-HAC-HDW1100EMP-03
DH-HAC-HDW1100MP
DH-HAC-HDW1100MP-036
DH-HAC-HDW1100RP-028
DH-HAC-HDW1100RP-VF
DH-HAC-HDW1100AP-028
DH-HAC-HDW1100AP-036
DH-HAC-HDW1100AP
DH-HAC-HDW1100BP-028
DH-HAC-HDW1100BP-036
DH-HAC-HDW1100BP
DH-HAC-HDW1100CP-
DH-HAC-HDW1100DP-036
DH-HAC-HDW1100DP-
DH-HAC-HDW1100EMP-03
DH-HAC-HDW1100EMP-02
DH-HAC-HDW1100EMP-
DH-HAC-HDW1100EP-036
DH-HAC-HDW1100EP-028
DH-HAC-HDW1100EP-03
DH-HAC-HDW1100EP-02
DH-HAC-HDW1100EP-
DH-HAC-HDW1100EP
DH-HAC-HDW1100FP-03
DH-HAC-HDW1100FP-02
DH-HAC-HDW1100FP-
DH-HAC-HDW1100FP
DH-HAC-HDW1100RMP-03
DH-HAC-HDW1100RMP-02
DH-HAC-HDW1100RMP-
DH-HAC-HDW1100RMP
DH-HAC-HDW1100RP-028
DH-HAC-HDW1100RP-036
DH-HAC-HDW1100RP-
DH-HAC-HDW1100RP
DH-HAC-HDW1100SP-036
DH-HAC-HDW1100SP-028
DH-HAC-HDW1100SP-
DH-HAC-HDW1100SP
DH-HAC-HDW1100SLP-03
DH-HAC-HDW1100TP-
DH-HAC-HDW1100MP-036
DH-HAC-HDW1100MP-028
DH-HAC-HDW1100MP
`;
const subst = ``;
// 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