@Override
	public ByteMatcher parse(String input, SearchSettings settings) {
		input = input.trim();
		if (input.isBlank()) {
			return new InvalidByteMatcher("");
		}

		List<String> byteGroups = getByteGroups(input);

		if (hasInvalidChars(byteGroups)) {
			return new InvalidByteMatcher("Invalid character");
		}

		if (checkGroupSize(byteGroups)) {
			return new InvalidByteMatcher("Max group size exceeded. Enter <space> to add more.");
		}

		byte[] bytes = getBytes(byteGroups);
		byte[] masks = getMask(byteGroups);
		return new MaskedByteSequenceByteMatcher(input, bytes, masks, settings);
	}
{@link SearchFormat} for parsing and display bytes in a binary format. This format only
accepts 0s or 1s or wild card characters.
Ghidra/Features/Base/src/main/java/ghidra/features/base/memsearch/format/BinarySearchFormat.java