### Godot version

v4.0.beta.custom_build [0abd60b95]

### System information

Windows 10, Vulkan

### Issue description

Autocomplete doesn't work when trying to access a scene node that isn't a direct child of the scene root script, using $NodePath (Shorthand for get_node("NodePath") as per docs).

Example:
![image](https://user-images.githubusercontent.com/115422160/212197922-10e73c9f-de10-475e-ac6e-4163fc5b8013.png)

It worked in Godot 3.5:
![3.5](https://user-images.githubusercontent.com/115422160/212197992-61b67a42-86c6-4650-bab4-c7dfa5a67975.PNG)

I should mention that it works if you start by typing the name of a direct child:
![image](https://user-images.githubusercontent.com/115422160/212198641-6d8e6fca-a2d2-47a7-b627-2df95268daf5.png)

But when you have many nodes in the scene and longer names it's a pain to access the last children like that.


### Steps to reproduce

See above or MRP.

### Minimal reproduction project

[autocomplete bug.zip](https://github.com/godotengine/godot/files/10406695/autocomplete.bug.zip)

code_completion_options.push_back(option);
			if (font.is_valid()) {
				max_width = MAX(max_width, font->get_string_size(option.display, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size).width + offset);
			}
			continue;
		}
		/* This code works the same as:
		if (option.display.begins_with(s)) {
			completion_options.push_back(option);
		} else if (option.display.to_lower().begins_with(s.to_lower())) {
			completion_options_casei.push_back(option);
		} else if (s.is_subsequence_of(option.display)) {
			completion_options_subseq.push_back(option);
		} else if (s.is_subsequence_ofn(option.display)) {
			completion_options_subseq_casei.push_back(option);
		}
		But is more performant due to being inlined and looping over the characters only once
		*/
		String display_lower = option.display.to_lower();
		const char32_t *ssq = &string_to_complete[0];
		const char32_t *ssq_lower = &string_to_complete_lower[0];
		const char32_t *tgt = &option.display[0];
		const char32_t *tgt_lower = &display_lower[0];
		const char32_t *sst = &string_to_complete[0];
		const char32_t *sst_lower = &display_lower[0];
		Vector<Pair<int, int>> ssq_matches;
		int ssq_match_start = 0;
		int ssq_match_len = 0;
		Vector<Pair<int, int>> ssq_lower_matches;
		int ssq_lower_match_start = 0;