String pattern = "^'.'"; Pattern r = Pattern.compile(pattern); Matcher m = r.matcher(code); String s = code; try { if (m != null && m.find()) { code = code.substring(m.group(0).length()); allLexemes.add(new Lexeme(m.group(0), LexemeTypes.Types.ConstantSymbol)); } else { String currToken = Pattern.compile("\s").matcher(code).group(0); code = code.substring(currToken.length()); allLexemes.add(new Lexeme(code, LexemeTypes.Types.ERROR)); } }catch (IllegalStateException ex){ String currToken = Pattern.compile("\s").matcher(code).group(0); code = code.substring(currToken.length()); allLexemes.add(new Lexeme(code, LexemeTypes.Types.ERROR)); }