function find_string_end(string, search_start_index, string_start_char) {
	let string_to_search;
	if (string_start_char === '`') {
		string_to_search = string;
	} else {
		// we could slice at the search start index, but this way the index remains valid
		string_to_search = string.slice(
			0,
			infinity_if_negative(string.indexOf('\n', search_start_index))
		);
	}

	return find_unescaped_char(string_to_search, search_start_index, string_start_char);
}
@param {string} string The string to search.
@param {number} search_start_index The index to start searching at.
@param {"'" | '"' | '`'} string_start_char The character that started this string.
@returns {number} The index of the end of this string expression, or `Infinity` if not found.