### Godot version

4.0 beta 16 and 17

### System information

Windows 11

### Issue description

Before beta 16 you could write `@export_category(name)` and it would make a category with "name" as the name.
Now you must use a string when defining the category name. (`@export_category("name")`)
The issue is that the moment you type something that doesn't start with `"` the engine crashes.

### Steps to reproduce

1. Create a script.
2. Write one of the following:
a) `@export_category()`
b) `@export_group()`
c) `@export_subgroup()`
3. In the parentheses write *any* character other than `"`.
4. Watch it crash.

If you managed to save the file the project will crash when opened.

### Minimal reproduction project

[Minimal.zip](https://github.com/godotengine/godot/files/10561826/Minimal.zip)

if (signal->parameters_indices.has(parameter->identifier->name)) {
				push_error(vformat(R"(Parameter with name "%s" was already declared for this signal.)", parameter->identifier->name));
			} else {
				signal->parameters_indices[parameter->identifier->name] = signal->parameters.size();
				signal->parameters.push_back(parameter);
			}
		} while (match(GDScriptTokenizer::Token::COMMA) && !is_at_end());
		pop_multiline();
		consume(GDScriptTokenizer::Token::PARENTHESIS_CLOSE, R"*(Expected closing ")" after signal parameters.)*");
	}
	complete_extents(signal);
	end_statement("signal declaration");
	return signal;
}
GDScriptParser::EnumNode *GDScriptParser::parse_enum() {
	EnumNode *enum_node = alloc_node<EnumNode>();
	bool named = false;
	if (check(GDScriptTokenizer::Token::IDENTIFIER)) {
		advance();
		enum_node->identifier = parse_identifier();
		named = true;
	}
	push_multiline(true);
	consume(GDScriptTokenizer::Token::BRACE_OPEN, vformat(R"(Expected "{" after %s.)", named ? "enum name" : R"("enum")"));
	HashMap<StringName, int> elements;
#ifdef DEBUG_ENABLED
	List<MethodInfo> gdscript_funcs;
	GDScriptLanguage::get_singleton()->get_public_functions(&gdscript_funcs);
#endif
	do {