const regex = /^.*?\b(?!From|To|Subj(ject)?|Ref(erences?)?)(?=\w{3,}( \d+)?:)/gs;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('^.*?\\b(?!From|To|Subj(ject)?|Ref(erences?)?)(?=\\w{3,}( \\d+)?:)', 'gs')
const str = `Text of variable length spread across several lines Serialization-type text separated by colons A date
From: One line of text To: One or more lines Subject: One or more lines References: One or more lines
From: One line of text To: One
or
more
lines Subject: One or more lines References: One or more lines
From: One line of text To: One or more lines Subject: No references.
From: One line of text To: One or more lines Subject: One
or
more
lines
References: One or more lines
Paragraph 1 Title: A paragraph
Paragraph 2 Title: Another paragraph`;
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