^0 صفر
1 یک
2 دو
3 سه
4 چهار
5 پنج
6 شش
7 هفت
8 هشت
9 نه
10 ده
11 یازده
12 دوازده
13 سیزده
14 چهارده
15 پانزده
16 شانزده
17 هفده
18 هجده
19 نوزده
2(\d) بیست[ و $1]
3(\d) سی[ و $1]
4(\d) چهل[ و $1]
5(\d) پنجاه[ و $1]
6(\d) شصت[ و $1]
7(\d) هفتاد[ و $1]
8(\d) هشتاد[ و $1]
9(\d) نود[ و $1]

# separator function
:0+			# one million
:0*\d?\d " و "	# one million and twenty-two
:\d+ " و "		# one million, one thousand


2(\d\d) دویست[ و $1]
3(\d\d) سیصد[ و $1]
5(\d\d) پانصد[ و $1]
(\d)(\d\d) $1صد[ و $2]
(\d{1,2})([1-9]\d\d) $1 هزار و[ $2]

(\d{1,3})(\d{3}) $1 هزار$(:\2)$2
(\d{1,3})(\d{6}) $1 میلیون$(:\2)$2
(\d{1,3})(\d{9}) $1 میلیارد$(:\2)$2
(\d{1,3})(\d{12}) $1 تریلیون$(:\2)$2
(\d{1,3})(\d{15}) $1 کوادریلیون$(:\2)$2
(\d{1,3})(\d{18}) $1 کوینتیلیون$(:\2)$2
(\d{1,3})(\d{21}) $1 سکستیلیون$(:\2)$2
(\d{1,3})(\d{24}) $1 سپتیلیون$(:\2)$2
(\d{1,3})(\d{27}) $1 اکتیلیون$(:\2)$2
(\d{1,3})(\d{30}) $1 نانیلیون$(:\2)$2
(\d{1,3})(\d{33}) $1 دسیلیون$(:\2)$2
(\d{1,3})(\d{36}) $1 آندسیلیون$(:\2)$2
(\d{1,3})(\d{39}) $1 دیودسیلیون$(:\2)$2
(\d{1,3})(\d{42}) $1 تریدسیلیون$(:\2)$2
(\d{1,3})(\d{45}) $1 کواتیوردسیلیون$(:\2)$2
(\d{1,3})(\d{48}) $1 کویندسیلیون$(:\2)$2
(\d{1,3})(\d{51}) $1 سکسدسیلیون$(:\2)$2
(\d{1,3})(\d{54}) $1 سپتدسیلیون$(:\2)$2
(\d{1,3})(\d{57}) $1 اُکتودسیلیون$(:\2)$2
(\d{1,3})(\d{60}) $1 نومدسیلیون$(:\2)$2
(\d{1,3})(\d{63}) $1 ویجینتیلیون$(:\2)$2
(\d{1,3})(\d{66}) $1 آنویجینتیلیون$(:\2)$2
(\d{1,3})(\d{69}) $1 دویجینتیلیون$(:\2)$2
(\d{1,3})(\d{72}) $1 ترسویجینتیلیون$(:\2)$2
(\d{1,3})(\d{75}) $1 کوادرویجینتیلیون$(:\2)$2
(\d{1,3})(\d{78}) $1 کوینکاویجینتیلیون$(:\2)$2
(\d{1,3})(\d{81}) $1 سیسویجینتیلیون$(:\2)$2
(\d{1,3})(\d{84}) $1 سپتمویجینتیلیون$(:\2)$2
(\d{1,3})(\d{87}) $1 آکتوویجینتیلیون$(:\2)$2
(\d{1,3})(\d{90}) $1 نومویجینتیلیون$(:\2)$2
(\d{1,3})(\d{93}) $1 تریویجینتیلیون$(:\2)$2
(\d{1,3})(\d{96}) $1 آنتریویجینتیلیون$(:\2)$2
(\d{1,3})(\d{99}) $1 دوتریویجینتیلیون$(:\2)$2
(\d{1,3})(\d{100}) $1 گوگول$(:\2)$2

# negative number

[-−](\d+) منفی |$1

# decimals

0[.,] ممیز
([-−]?\d+)[.,] $1| ممیز
([-−]?\d+[.,]\d*)(\d) $1| |$2

# currency

# unit/subunit singular/plural

us:([^,]*),([^,]*),([^,]*),([^,]*) \1
up:([^,]*),([^,]*),([^,]*),([^,]*) \2
ss:([^,]*),([^,]*),([^,]*),([^,]*) \3
sp:([^,]*),([^,]*),([^,]*),([^,]*) \4

ZMW:(\D+) $(\1: کواچای زامبیا, کواچای زامبیا, نگوی, نگوی)
ZAR:(\D+) $(\1: رند آفریقای جنوبی, رند آفریقای جنوبی, سنت, سنت)
YER:(\D+) $(\1: ریال یمن, ریال یمن, فلس, فلس)
WST:(\D+) $(\1: طلای ساموآ, طلای ساموآ, سن, سن)
VUV:(\D+) $(\1: واتوی وانواتو, واتوی وانواتو,,)
VND:(\D+) $(\1: دانگ ویتنام, دانگ ویتنام, هائو, هائو)
VES:(\D+) $(\1: بولیوار ونزوئلا, بولیوار ونزوئلا, سنتیمو, سنتیمو)
UZS:(\D+) $(\1: سوم ازبکستان, سوم ازبکستان, تین, تین)
UYU:(\D+) $(\1: پزوی اروگوئه, پزوی اروگوئه, سنتسیمو, سنتسیمو)
USD:(\D+) $(\1: دلار آمریکا, دلار آمریکا, سنت, سنت)
UGX:(\D+) $(\1: شیلینگ اوگاندا, شیلینگ اوگاندا,,)
UAH:(\D+) $(\1: گریونا اوکراین, گریونا اوکراین, کوپک, کوپک)
TZS:(\D+) $(\1: شیلینگ تانزانیا, شیلینگ تانزانیا, سنت, سنت)
TWD:(\D+) $(\1: دلار جدید تایوان, دلار جدید تایوان, سنت, سنت)
TTD:(\D+) $(\1: دلار ترینیداد و توباگو, دلار ترینیداد و توباگو, سنت, سنت)
TRY:(\D+) $(\1: لیره ترک, لیره ترک, قرش, قرش)
TOP:(\D+) $(\1: پاآنگای تونگا, پاآنگای تونگا, سنیتی, سنیتی)
TND:(\D+) $(\1: دینار تونس, دینار تونس, میلیم, میلیم)
TMT:(\D+) $(\1: منات ترکمنستان, منات ترکمنستان, تنگه, تنگه)
TJS:(\D+) $(\1: سامانی تاجیکستان, سامانی تاجیکستان, درم, درم)
THB:(\D+) $(\1: بات تایلند, بات تایلند, ساتانگ, ساتانگ)
SYP:(\D+) $(\1: لیره سوریه, لیره سوریه, قرش, قرش)
SSP:(\D+) $(\1: پوند سودان جنوبی, پوند سودان جنوبی, قرش, قرش)
SRD:(\D+) $(\1: دلار سورینام, دلار سورینام, سنت, سنت)
SOS:(\D+) $(\1: شیلینگ سومالی, شیلینگ سومالی, سنت, سنت)
SLS:(\D+) $(\1: شیلینگ سومالی‌لند, شیلینگ سومالی‌لند, سنت, سنت)
SLL:(\D+) $(\1: لئون سیرالئون, لئون سیرالئون, سنت, سنت)
SGD:(\D+) $(\1: دلار سنگاپور, دلار سنگاپور, سنت, سنت)
SEK:(\D+) $(\1: کرون سوئد, کرون سوئد, اوره, اوره)
SDG:(\D+) $(\1: پوند سودان, پوند سودان, قرش, قرش)
SCR:(\D+) $(\1: روپیه سیشل, روپیه سیشل, سنت, سنت)
SBD:(\D+) $(\1: دلار جزایر سلیمان, دلار جزایر سلیمان, سنت, سنت)
RWF:(\D+) $(\1: فرانک رواندا, فرانک رواندا, سانتیم, سانتیم)
RUB:(\D+) $(\1: روبل روسیه, روبل روسیه, کوپک, کوپک)
RSD:(\D+) $(\1: دینار صربستان, دینار صربستان, پارا, پارا)
RON:(\D+) $(\1: لئوی رومانی, لئوی رومانی, بان, بان)
PYG:(\D+) $(\1: گوارانی پاراگوئه, گوارانی پاراگوئه, سنتیمو, سنتیمو)
PRB:(\D+) $(\1: روبل ترانسنیسترین, روبل ترانسنیسترین, کوپک, کوپک)
PLN:(\D+) $(\1: زلوتی لهستان, زلوتی لهستان, گروش, گروش)
PKR:(\D+) $(\1: روپیه پاکستان, روپیه پاکستان, پیسه, پیسه)
PHP:(\D+) $(\1: پزو فیلیپین, پزو فیلیپین, سنتیمو, سنتیمو)
PGK:(\D+) $(\1: کینای پاپوآ گینه نو, کینای پاپوآ گینه نو, تویا, تویا)
PEN:(\D+) $(\1: سول پرو, سول پرو, سنتیمو, سنتیمو)
NZD:(\D+) $(\1: دلار نیوزیلند, دلار نیوزیلند, سنت, سنت)
NOK:(\D+) $(\1: کرون نروژ, کرون نروژ, اوره, اوره)
NIO:(\D+) $(\1: کوردوبای نیکاراگوئه, کوردوبای نیکاراگوئه, سنتاوو, سنتاوو)
NGN:(\D+) $(\1: نایرا نیجریه, نایرا نیجریه, کوبو, کوبو)
MZN:(\D+) $(\1: متیکال موزامبیک, متیکال موزامبیک, سنتاوو, سنتاوو)
MYR:(\D+) $(\1: رینگیت مالزی, رینگیت مالزی, سن, سن)
MXN:(\D+) $(\1: پزو مکزیک, پزو مکزیک, سنتاوو, سنتاوو)
MWK:(\D+) $(\1: کواچا مالاویا, کواچا مالاویا, تامبالا, تامبالا)
MUR:(\D+) $(\1: روپیه موریس, روپیه موریس, سنت, سنت)
MRU:(\D+) $(\1: اوقیه موریتانی, اوقیه موریتانی, خمس, خمس)
MNT:(\D+) $(\1: توگروگ مغولستان, توگروگ مغولستان, مونگو, مونگو)
MMK:(\D+) $(\1: کیات میانمار, کیات میانمار, پیا, پیا)
MKD:(\D+) $(\1: دینار مقدونیه, دینار مقدونیه, دنی, دنی)
MGA:(\D+) $(\1: آریاری ماداگاسکار, آریاری ماداگاسکار, ایراایمبیلانجا, ایراایمبیلانجا)
MDL:(\D+) $(\1: لئوی مولداوی, لئوی مولداوی, بان, بان)
LYD:(\D+) $(\1: دینار لیبی, دینار لیبی, درهم, درهم)
LRD:(\D+) $(\1: دلار لیبریا, دلار لیبریا, سنت, سنت)
LKR:(\D+) $(\1: روپیه سری‌لانکا, روپیه سری‌لانکا, سنت, سنت)
LAK:(\D+) $(\1: کیپ لائوس, کیپ لائوس, ات, ات)
KZT:(\D+) $(\1: تنگه قزاقستان, تنگه قزاقستان, تیین, تیین)
KRW:(\D+) $(\1: وون کره جنوبی, وون کره جنوبی, جیون, جیون)
KPW:(\D+) $(\1: وون کره شمالی, وون کره شمالی, چون, چون)
KHR:(\D+) $(\1: ریال کامبوج, ریال کامبوج, سن, سن)
KGS:(\D+) $(\1: سوم قرقیزستان, سوم قرقیزستان, تیین, تیین)
KES:(\D+) $(\1: شیلینگ کنیا, شیلینگ کنیا, سنت, سنت)
JPY:(\D+) $(\1: ین ژاپن, ین ژاپن, سن, سن)
JMD:(\D+) $(\1: دلار جامائیکا, دلار جامائیکا, سنت, سنت)
ISK:(\D+) $(\1: کرونای ایسلند, کرونای ایسلند, اوره, اوره)
IRR:(\D+) $(\1: ریال ایران, ریال ایران, دینار, دینار)
IQD:(\D+) $(\1: دینار عراق, دینار عراق, فلس, فلس)
INR:(\D+) $(\1: روپیه هند, روپیه هند, پیسه, پیسه)
ILS:(\D+) $(\1: شکل جدید اسرائیل, شکل جدید اسرائیل, آگوروت, آگوروت)
IDR:(\D+) $(\1: روپیه اندونزی, روپیه اندونزی, سن, سن)
HUF:(\D+) $(\1: فورینت مجارستان, فورینت مجارستان, فیلر, فیلر)
HTG:(\D+) $(\1: گورد هائیتی, گورد هائیتی, سانتیم, سانتیم)
HRK:(\D+) $(\1: کونای کرواسی, کونای کرواسی, لیپا, لیپا)
HNL:(\D+) $(\1: لامپیرای هندوراس, لامپیرای هندوراس, سنتاوو, سنتاوو)
GYD:(\D+) $(\1: دلار گویان, دلار گویان, سنت, سنت)
GTQ:(\D+) $(\1: کوتزال گواتمالا, کوتزال گواتمالا, سنتاوو, سنتاوو)
GNF:(\D+) $(\1: فرانک گینه, فرانک گینه, سانتیم, سانتیم)
GMD:(\D+) $(\1: دالاسی گامبیا, دالاسی گامبیا, بوتوت, بوتوت)
GHS:(\D+) $(\1: سدی غنا, سدی غنا, پسوا, پسوا)
GEL:(\D+) $(\1: لاری گرجستان, لاری گرجستان, تتری, تتری)
GBP:(\D+) $(\1: پوند استرلینگ, پوند استرلینگ, پنی, پنی)
FJD:(\D+) $(\1: دلار فیجی, دلار فیجی, سنت, سنت)
EUR:(\D+) $(\1: یورو, یورو, سنت, سنت)
ETB:(\D+) $(\1: بیر اتیوپی, بیر اتیوپی, سانتیم, سانتیم)
EGP:(\D+) $(\1: پوند مصر, پوند مصر, قرش, قرش)
DZD:(\D+) $(\1: دینار الجزایر, دینار الجزایر, سانتیم, سانتیم)
DOP:(\D+) $(\1: پزو دومینیکن, پزو دومینیکن, سنتاوو, سنتاوو)
CZK:(\D+) $(\1: کرونای چک, کرونای چک, هالر, هالر)
CUP:(\D+) $(\1: پزوی کوبا, پزوی کوبا, سنتاوو, سنتاوو)
CRC:(\D+) $(\1: کولون کاستاریکا, کولون کاستاریکا, سنتیمو, سنتیمو)
COP:(\D+) $(\1: پزو کلمبیا, پزو کلمبیا, سنتاوو, سنتاوو)
CNY:(\D+) $(\1: رنمینبی, رنمینبی, جیائو, جیائو)
CLP:(\D+) $(\1: پزو شیلی, پزو شیلی, سنتاوو, سنتاوو)
CHF:(\D+) $(\1: فرانک سوئیس, فرانک سوئیس, سانتیم, سانتیم)
CDF:(\D+) $(\1: فرانک کنگو, فرانک کنگو, سانتیم, سانتیم)
CAD:(\D+) $(\1: دلار کانادا, دلار کانادا, سنت, سنت)
BYN:(\D+) $(\1: روبل بلاروس, روبل بلاروس, کاپیکا, کاپیکا)
BWP:(\D+) $(\1: پولای بوتسوانا, پولای بوتسوانا, تیب, تیب)
BRL:(\D+) $(\1: رئال برزیل, رئال برزیل, سنتاوو, سنتاوو)
BOB:(\D+) $(\1: بولیویانو بولیوی, بولیویانو بولیوی, سنتاوو, سنتاوو)
BIF:(\D+) $(\1: فرانک بوروندی, فرانک بوروندی, سانتیم, سانتیم)
BDT:(\D+) $(\1: تاکا بنگلادش, تاکا بنگلادش, پیسه, پیسه)
AZN:(\D+) $(\1: منات آذربایجان, منات آذربایجان, گپیک, گپیک)
AUD:(\D+) $(\1: دلار استرالیا, دلار استرالیا, سنت, سنت)
ARS:(\D+) $(\1: پزو آرژانتین, پزو آرژانتین, سنتاوو, سنتاوو)
AOA:(\D+) $(\1: کوانزای آنگولا, کوانزای آنگولا, سنتیمو, سنتیمو)
AMD:(\D+) $(\1: درام ارمنستان, درام ارمنستان, لوما, لوما)
ALL:(\D+) $(\1: لک آلبانی, لک آلبانی, کیندارکا, کیندارکا)
AFN:(\D+) $(\1: افغانی افغانستان, افغانی افغانستان, پول, پول)

"(JPY [-−]?\d+)[.,](\d\d)0" $1
"(JPY [-−]?\d+[.,]\d\d)(\d)" $1 $2 rin

"([A-Z]{3}) ([-−]?1)([.,]00?)?" $2$(\1:us)
"([A-Z]{3}) ([-−]?\d+)([.,]00?)?" $2$(\1:up)

"(CNY [-−]?\d+)[.,](\d)0?" $1 $2 jiao
"(CNY [-−]?\d+[.,]\d)(\d)" $1 $2 fen

"((MGA|MRO) [-−]?\d+)[.,]0" $1
"((MGA|MRO) [-−]?\d+)[.,]2" $1 و |$(1)$(\2:ss)
"((MGA|MRO) [-−]?\d+)[.,]4" $1 و |$(2)$(\2:sp)
"((MGA|MRO) [-−]?\d+)[.,]6" $1 و |$(3)$(\2:sp)
"((MGA|MRO) [-−]?\d+)[.,]8" $1 و |$(4)$(\2:sp)

"(([A-Z]{3}) [-−]?\d+)[.,](01)" $1 و |$(1)$(\2:ss)
"(([A-Z]{3}) [-−]?\d+)[.,](\d)" $1 و |$(\30)$(\2:sp)
"(([A-Z]{3}) [-−]?\d+)[.,](\d\d)" $1 و |$3$(\2:sp)

== money ==

"(JPY [-−]?\d+)[.,](\d\d)0" $1
"(JPY [-−]?\d+[.,]\d\d)(\d)" $1 $2 rin

"([A-Z]{3}) ([-−]?1)([.,]00?)?" $2$(\1:us)
"([A-Z]{3}) ([-−]?\d+)([.,]00?)?" $2$(\1:up)

"(CNY [-−]?\d+)[.,](\d)0?" $1 $2 jiao
"(CNY [-−]?\d+[.,]\d)(\d)" $1 $2 fen

"(MGA|MRO) ([-−]?\d+)[.,]0" $2$(\1:us)
"(MGA|MRO) ([-−]?\d+)[.,]2" $2 و 1/5$(\1:us)
"(MGA|MRO) ([-−]?\d+)[.,]4" $2 و 2/5$(\1:up)
"(MGA|MRO) ([-−]?\d+)[.,]6" $2 و 3/5$(\1:up)
"(MGA|MRO) ([-−]?\d+)[.,]8" $2 و 4/5$(\1:up)

"([A-Z]{3}) ([-−]?1)" $2$(\1:us)
"([A-Z]{3}) ([-−]?\d+)" $2$(\1:up)
"(([A-Z]{3}) ([-−]?\d+))[.,](01)" $3 و 1/100$(\2:us)
"(([A-Z]{3}) ([-−]?\d+))[.,](\d)" $3 و \40/100$(\2:up)
"(([A-Z]{3}) ([-−]?\d+))[.,](\d\d)" $3 و \4/100$(\2:up)
"(([A-Z]{3}) ([-−]?\d+))[.,](\d\d\d)" $3 و \4/1000$(\2:up)

== ordinal ==

# convert to text, and recall to convert
# cardinal names to ordinal ones

([-−]?\d+) $(ordinal |$1)

(.*)سه	\1سومین
(.*)	\1مین

== ordinal-number ==

(.*)	\1مین

== year ==

(.*) \1

== help ==

"" $(1)|, $(2), $(3)\n$(\0 ordinal)$(\0 ordinal-number)year: $(year 1999), two thousand, $(year 2001)\ncurrency \(for example, USD\): $(USD 2.5)\nmoney USD: $(money USD 2.5)
"(ordinal(-number)?|USD)" \1: $(\1 1), $(\1 2), $(\1 3)\n

