public boolean proccess() {
		String pattern = "[^\\\"\\n]*\\s*\"(?:[^\\\\\"]+|\\\\.)*\"(\\s*\\+\\s*\"(?:[^\\\\\"]+|\\\\.)*\")*\\s*";

		Matcher matcher = Pattern.compile(pattern).matcher(this.doc);

		while (matcher.find()) {
			if ((matcher.start() <= this.cursorPosition)
					&& (matcher.end() >= this.cursorPosition)) {
				this.start = matcher.start();
				this.end = matcher.end();

				this.expression = matcher.group();
				String patternStart = "\\\"";
				Matcher findString = Pattern.compile(patternStart).matcher(
						this.expression);

				findString.find();

				this.prefix = this.expression.substring(0,
						findString.start() - 1);
				this.expression = this.expression
						.substring(findString.start() - 1);

				Matcher blankMatcher = Pattern.compile("\\s*").matcher(
						this.prefix);

				if (blankMatcher.find())
					this.blank = blankMatcher.group();
				else {
					this.blank = "";
				}
				this.length = (this.expression.length() + this.prefix.length());

				this.name = String.valueOf(this.prefix.hashCode());
				this.text = getText(this.expression);

				return true;
			}
		}

		return false;
	}