const regex = /(?:^|\s+)([A-Ea-e][.)]\s+(?:(?!\s+[A-Ea-e][.)]\s+)[\s\S])*)/g; const text = "A) Statement 1 alone B) Statement 2 alone C) Both together D) Either alone E) Neither"; const tempOptions = []; let m2; while ((m2 = regex.exec(text)) !== null) { tempOptions.push({ text: m2[1].trim(), index: m2.index, letter: m2[1].charAt(0).toUpperCase() }); } console.log("tempOptions:", tempOptions); const startIdx = tempOptions.findIndex((o) => o.letter === 'A'); let validOpts = []; if (startIdx >= 0) { let expectedLetterCode = 65; for (let k = startIdx; k < tempOptions.length; k++) { if (tempOptions[k].letter.charCodeAt(0) === expectedLetterCode) { validOpts.push(tempOptions[k]); expectedLetterCode++; } else { break; } } } console.log("validOpts length:", validOpts.length); if (validOpts.length >= 2) { const options = validOpts.map((o) => o.text); console.log("options:", options); }