performSearch(searchType) {
		let pattern = '';
		switch (searchType) {
			case 'ascii':
				pattern = document.getElementById('hexedit-search-ascii').value.trim();
				break;
			case 'hex':
				pattern = document.getElementById('hexedit-search-hex').value.trim();
				break;
			case 'regex':
				pattern = document.getElementById('hexedit-search-regex').value.trim();
				break;
			default:
				console.warn(`Unknown search type: ${searchType}`);
				pattern = '';
				break;
		}

		// Reset previous search results
		this.clearSearchHighlights();
		this.matches = [];
		this.currentMatchIndex = -1;

		if (!pattern) {
			// Update status field to 0/0
			this.updateSearchStatus(searchType, 0, 0);
			console.log('No search pattern entered.');
			return;
		}

		try {
			// Determine search type and perform search
			if (searchType === 'ascii') {
				this.searchASCII(pattern);
			} else if (searchType === 'hex') {
				this.searchHEX(pattern);
			} else if (searchType === 'regex') {
				this.searchRegex(pattern);
			}
		} catch (error) {
			console.log(`Error during search: ${error.message}`);
			// Update status field to 0/0 on error
			this.updateSearchStatus(searchType, 0, 0);
			return;
		}

		// After searching, highlight all matches and navigate to the first one
		if (this.matches.length > 0) {
			this.highlightAllMatches(searchType);
			this.currentMatchIndex = 0;
			this.navigateToMatch(this.currentMatchIndex);
			// Update status field with actual match count
			this.updateSearchStatus(searchType, this.currentMatchIndex + 1, this.matches.length);
			console.log(`Found ${this.matches.length} matches.`);
		} else {
			// Update status field to 0/0 if no matches found
			this.updateSearchStatus(searchType, 0, 0);
			console.log('No matches found.');
		}
	}
Performs the search based on the specified search type.

@param {string} searchType - The type of search ('ascii', 'hex', 'regex').