### 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)

int matching_chars = code_completion_base.length();
			for (; matching_chars <= insert_text.length(); matching_chars++) {
				if (caret_col >= line.length() || line[caret_col] != insert_text[matching_chars]) {
					break;
				}
				caret_col++;
			}
			
			remove_text(caret_line, get_caret_column(i) - code_completion_base.length(), caret_line, get_caret_column(i));
			adjust_carets_after_edit(i, caret_line, get_caret_column(i) - code_completion_base.length(), caret_line, get_caret_column(i));
			set_caret_column(get_caret_column(i) - code_completion_base.length(), false, i);
			
			insert_text_at_caret(insert_text.substr(0, code_completion_base.length()), i);
			set_caret_column(caret_col, false, i);
			insert_text_at_caret(insert_text.substr(matching_chars), i);
		}
		
		const String line = get_line(caret_line);
		char32_t next_char = line[get_caret_column(i)];
		char32_t last_completion_char = insert_text[insert_text.length() - 1];
		if (i == 0) {
			caret_last_completion_char = last_completion_char;
		}
		char32_t last_completion_char_display = display_text[display_text.length() - 1];
		bool last_char_matches = (last_completion_char == next_char || last_completion_char_display == next_char);
		int pre_brace_pair = get_caret_column(i) > 0 ? _get_auto_brace_pair_open_at_pos(caret_line, get_caret_column(i)) : -1;
		int post_brace_pair = get_caret_column(i) < get_line(caret_line).length() ? _get_auto_brace_pair_close_at_pos(caret_line, get_caret_column(i)) : -1;
		
		if (has_string_delimiter(String::chr(last_completion_char))) {
			if (post_brace_pair != -1 && last_char_matches) {