[Turn off line numbering]1: arg str; 2: var card, reg, i, x, cards, out, s; 3: 4: out = (cards = []); 5: while ((reg = match_regexp(str, "(%[0-9]+)"))) { 6: if (reg[2][1] != 1) 7: out += [@.break_wildcards(str.subrange(1, reg[2][1] - 1))]; 8: card = substr(str, @reg[2]); 9: str = substr(str, reg[2].sum()); 10: if (!card[2].is_numeric()) 11: throw(~invcard, "Argument cards must be numeric."); 12: card = toint(substr(card, 2)); 13: cards += [card]; 14: out += [card]; 15: } 16: if (str) 17: out += [str]; 18: return [out, cards];
// Created 27-Mar-1995 as a part of ColdCore, see: @help Credit