Program: 80411
Project: 80411
Buggy source:
/** 
 * [@|$][a-zA-Z0-9_-.]+ <pre> 48-57    0-9 65-90    A-Z 97-122    a-z 95        _ 45        - 46        . </pre>
 * @param str
 * @return SqlLiteral
 */
SqlLiteral valueOf(String str){
  reset();
  source=str;
  if (null == source)   return this;
  char[] cs=Strings.trim(source).toCharArray();
  StringBuilder sb;
  for (int i=0; i < cs.length; i++) {
    char c=cs[i];
switch (c) {
case '@':
      if (cs[i + 1] == '@') {
        stack.push(c);
        i++;
        break;
      }
    sb=new StringBuilder();
  i=readTokenName(cs,i,sb);
if (sb.length() == 0) {
  stack.push(c);
}
 else {
  paramIndexes.add(sb.toString(),stack.markToken());
}
break;
case '$':
if (cs[i + 1] == '$') {
stack.push(c);
i++;
break;
}
sb=new StringBuilder();
i=readTokenName(cs,i,sb);
if (sb.length() == 0) {
stack.push(c);
}
 else {
varIndexes.add(sb.toString(),stack.markToken());
}
break;
default :
stack.push(c);
}
}
stack.finish();
if (stack.firstEquals("String_Node_Str") || stack.firstEquals("String_Node_Str")) type=SqlType.SELECT;
 else if (stack.firstEquals("String_Node_Str")) type=SqlType.UPDATE;
 else if (stack.firstEquals("String_Node_Str")) type=SqlType.INSERT;
 else if (stack.firstEquals("String_Node_Str")) type=SqlType.DELETE;
 else if (stack.firstEquals("String_Node_Str")) type=SqlType.CREATE;
 else if (stack.firstEquals("String_Node_Str")) type=SqlType.DROP;
 else if (stack.firstEquals("String_Node_Str")) type=SqlType.TRUNCATE;
 else if (stack.firstEquals("String_Node_Str")) type=SqlType.ALTER;
 else type=SqlType.OTHER;
return this;
}

Fixed version (ground truth):
/** 
 * [@|$][a-zA-Z0-9_-.]+ <pre> 48-57    0-9 65-90    A-Z 97-122    a-z 95        _ 45        - 46        . </pre>
 * @param str
 * @return SqlLiteral
 */
SqlLiteral valueOf(String str){
  reset();
  source=str;
  if (null == source)   return this;
  char[] cs=Strings.trim(source).toCharArray();
  StringBuilder sb;
  for (int i=0; i < cs.length; i++) {
    char c=cs[i];
switch (c) {
case '@':
      if (cs[i + 1] == '@') {
        stack.push(c);
        i++;
        break;
      }
    sb=new StringBuilder();
  i=readTokenName(cs,i,sb);
if (sb.length() == 0) {
  stack.push(c);
}
 else {
  paramIndexes.add(sb.toString(),stack.markToken());
}
break;
case '$':
if (cs[i + 1] == '$') {
stack.push(c);
i++;
break;
}
sb=new StringBuilder();
i=readTokenName(cs,i,sb);
if (sb.length() == 0) {
stack.push(c);
}
 else {
varIndexes.add(sb.toString(),stack.markToken());
}
break;
default :
stack.push(c);
}
}
stack.finish();
if (stack.firstEquals("String_Node_Str") || stack.firstEquals("String_Node_Str")) type=SqlType.SELECT;
 else if (stack.firstEquals("String_Node_Str")) type=SqlType.UPDATE;
 else if (stack.firstEquals("String_Node_Str")) type=SqlType.INSERT;
 else if (stack.firstEquals("String_Node_Str")) type=SqlType.DELETE;
 else if (stack.firstEquals("String_Node_Str")) type=SqlType.CREATE;
 else if (stack.firstEquals("String_Node_Str")) type=SqlType.DROP;
 else if (stack.firstEquals("String_Node_Str")) type=SqlType.TRUNCATE;
 else if (stack.firstEquals("String_Node_Str")) type=SqlType.ALTER;
 else if (stack.firstEquals("String_Node_Str")) type=SqlType.EXEC;
 else if (stack.firstEquals("String_Node_Str")) type=SqlType.CALL;
 else if (stack.firstEquals("String_Node_Str")) type=SqlType.CALL;
 else type=SqlType.OTHER;
return this;
}