Вы можете использовать lookbehind:
String s = stringFromQr.replaceAll("(?<=: RM)9999", "1500");
Что означает заменить все вхождения «9999», перед которыми стоит «: RM», на «1500».
Редактировать, чтобы ответить на комментарии, выможет сделать:
String s = stringFromQr.replaceAll("(?<=: RM)" + Pattern.quote(stringToReplace), stringToReplaceWith);
Обратите внимание, что я использовал Pattern.quote
, чтобы избежать любого эффекта регулярного выражения от него.