### Godot version

3.5.1.stable, v4.0.beta.custom_build [0a87ead64]

### System information

Ubuntu 22.04.1

### Issue description

For example, if project has name "300spartans", we can't enter the "org.godotengine.300spartans" to "Unique Name" field. We get the error "Invalid package name: A digit cannot be the first character in a package segment". But , if we enter "org.godotengine.$genname", there will be no error message. When exporting, the name will be set as "org.godotengine.spartans" without "300" in beginning, but user will not be informed about it. I think, it is not very good. It may not be worth making changes to the source code, but mention it in the documentation.

### Steps to reproduce

See issue description.

### Minimal reproduction project

N/A
const Ref<Image> &foreground,
			const Ref<Image> &background);
	static Vector<ABI> get_enabled_abis(const Ref<EditorExportPreset> &p_preset);
public:
	typedef Error (*EditorExportSaveFunction)(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total, const Vector<String> &p_enc_in_filters, const Vector<String> &p_enc_ex_filters, const Vector<uint8_t> &p_key);
public:
	virtual void get_preset_features(const Ref<EditorExportPreset> &p_preset, List<String> *r_features) const override;
	virtual void get_export_options(List<ExportOption> *r_options) override;
	virtual String get_name() const override;
	virtual String get_os_name() const override;
	virtual Ref<Texture2D> get_logo() const override;
	virtual bool should_update_export_options() override;
	virtual bool poll_export() override;
	virtual int get_options_count() const override;
	virtual String get_options_tooltip() const override;
	virtual String get_option_label(int p_index) const override;
	virtual String get_option_tooltip(int p_index) const override;
	virtual Error run(const Ref<EditorExportPreset> &p_preset, int p_device, int p_debug_flags) override;
	virtual Ref<Texture2D> get_run_icon() const override;
	static String get_adb_path();
	static String get_apksigner_path(int p_target_sdk = -1, bool p_check_executes = false);
	virtual bool has_valid_export_configuration(const Ref<EditorExportPreset> &p_preset, String &r_error, bool &r_missing_templates) const override;
	virtual bool has_valid_project_configuration(const Ref<EditorExportPreset> &p_preset, String &r_error) const override;
	virtual List<String> get_binary_extensions(const Ref<EditorExportPreset> &p_preset) const override;
	inline bool is_clean_build_required(Vector<PluginConfigAndroid> enabled_plugins) {
		String plugin_names = PluginConfigAndroid::get_plugins_names(enabled_plugins);
		bool first_build = last_custom_build_time == 0;
		bool have_plugins_changed = false;
		if (!first_build) {
			have_plugins_changed = plugin_names != last_plugin_names;