Нет необходимости использовать регулярные выражения вообще:
string = string.replace("^", "");
Однако, первый из ваших примеров тоже работает:
public class Test {
public static void main(String[] args) throws Exception {
String string = "some^string";
string = string.replaceAll("\\^", "");
System.out.println(string); // Prints somestring
}
}
... так что вполне возможно, что ваша проблема в другом месте.