Вариант номер раз, самый простой и удобный:

Код AS3:
var s:String = "Коля потратил %coins% на %apples% яблок";
var re0:RegExp = /%\w+%/g;
s = s.replace(re0, reHelper);
function reHelper(match:String, index:int, all:String):String
{
switch (match)
{
case "%coins%":
return "$100";
case "%apples%":
return "5";
}
return match;
}
trace(s);

Код AS3:
var re1:RegExp = /(%coins%)(.*)(%apples%)/g;
var s1:String = "Коля потратил %coins% на %apples% яблок";
s1 = s1.replace(re1, "$$100$25");
trace(s1);
Вариант не универсальный, но от задачи зависит.