JSFiddle - React, Tailwind, and code Playground

HTML

<script type="module">
	//build regexes without worrying about
	// - double-backslashing
	// - adding whitespace for readability
	// - adding in comments
	let clean = (piece) => (piece
		.replace(/((^|\n)(?:[^\/\\]|\/[^*\/]|\\.)*?)\s*\/\*(?:[^*]|\*[^\/])*(\*\/|)/g, '$1')
		.replace(/((^|\n)(?:[^\/\\]|\/[^\/]|\\.)*?)\s*\/\/[^\n]*/g, '$1')
		.replace(/\n\s*/g, '')
	);
	window.regex = ({raw}, ...interpolations) => (
		new RegExp(interpolations.reduce(
			(regex, insert, index) => (regex + insert + clean(raw[index + 1])),
			clean(raw[0])
		))
	);
</script>

Output is in the console.

JavaScript

console.log(
 	'123hello'
        .match(regex`
            //so this is a regex

            //here I am matching some numbers
            (\d+)

            //Oh! See how I didn't need to double backslash that \d?
            ([a-z]{1,3}) /*note to self, this is group #2*/
        `)
        [2]
)