@Override
		protected void refreshResults() {
			// Skip when there is nothing
			String search = searchInput.getText();
			if (search == null || search.isBlank()) {
				results.list.clear();
				hasResults.set(false);
				return;
			}

			List<R> tempResultsList = new ArrayList<>();
			if (regex.get()) {
				// Validate the regex.
				RegexUtil.RegexValidation validation = RegexUtil.validate(search);
				Popover popoverValidation = null;
				if (validation.valid()) {
					// It's valid, match against values
					Pattern pattern = RegexUtil.pattern(search);
					regexSearch(pattern, tempResultsList);
				} else {
					// It's not valid. Tell the user what went wrong.
					popoverValidation = new Popover(new Label(validation.message()));
					popoverValidation.setHeaderAlwaysVisible(true);
					popoverValidation.titleProperty().bind(Lang.getBinding("find.regexinvalid"));
					popoverValidation.show(searchInput);
				}

				// Hide the prior popover if any exists.
				Object old = searchInput.getProperties().put("regex-popover", popoverValidation);
				if (old instanceof Popover oldPopover)
					oldPopover.hide();
			} else {
				containmentSearch(search, tempResultsList);
			}
			tempResultsList.sort(Comparator.naturalOrder());
			results.list.setAll(tempResultsList);
		}
Search bar base implementation, tied to a {@link PathResultsPane}.

@param <T>
		Input type.
@param <R>
		Result type.
recaf-ui/src/main/java/software/coley/recaf/ui/window/QuickNavWindow.java