define(f,`ifelse(`$1',,,`f(patsubst(``~$1'',~.* ))On the %s day of Christmas, my true love sent to me patsubst(`$1',\ A,\&nd a) ')')regexp(format((f(patsubst(``Twelve drummers drumm!Eleven pipers pip!Ten lords a-leap!Nine ladies danc!Eight maids a-milk!Seven swans a-swimm!Six geese a-lay!Five golden rings, Four calling birds, Three French hens, Two turtle doves, A partridge in a pear tree. '',!,`ing, '))),first,second,third,patsubst(four!fif!six!seven!eigh!nin!ten!eleven!twelf!,!,`th,')),O[^~]*e,\&!)