@Override
		public Collection<AssemblyParseToken> match(String buffer, int pos, AssemblyGrammar grammar,
				AssemblyNumericSymbols symbols) {
			if (buffer.length() == 0) {
				return Collections.singleton(new WhiteSpaceParseToken(grammar, this, ""));
			}
			int b = pos;
			while (b < buffer.length() && Character.isWhitespace(buffer.charAt(b))) {
				b++;
			}
			if (b == pos) {
				if (pos == buffer.length()) {
					if (Character.isLetterOrDigit(buffer.charAt(b - 1))) {
						return Collections.singleton(
							new TruncatedWhiteSpaceParseToken(grammar, this));
					}
					return Collections.singleton(new WhiteSpaceParseToken(grammar, this, ""));
				}
				if (Character.isLetterOrDigit(buffer.charAt(b)) &&
					(b == 0 || Character.isLetterOrDigit(buffer.charAt(b - 1)))) {
					return Collections.emptySet();
				}
			}
			return Collections.singleton(
				new WhiteSpaceParseToken(grammar, this, buffer.substring(pos, b)));
		}
A "whitespace" terminal

<p>
This terminal represents "optional" whitespace. "Optional" because in certain circumstances,
whitespace is not actually required, i.e., before or after a special character.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/assembler/sleigh/grammars/AssemblySentential.java