public static FelixString tryParse(ParserReader in) throws IOException {
		in.mark(1); // Prepare to roll back if we don't see a quote character. 
		int quote = in.read();
		boolean isQuote = quote == S || quote == D;
		if(!isQuote) {
			in.reset();
			return null; // Not a string
		}
		
		StringBuffer buf = new StringBuffer(1000);
		boolean triple = checkTriple(in, quote);
		for(;;) {
			int ch = in.read();
			if(ch == -1) throw new EOFException("Reached EOF parsing string");
			if(ch == quote && (!triple || checkTriple(in, quote))) {
				return new FelixString(buf.toString(), quote, triple);
			} else if(ch == ESCAPE) {
				buf.append(mapSpecialChar(in.read()));
			}
		}
		
	}