^0 cero
1$ uno
1 un
2 dos
3 tres
4 cuatro
5 cinco
6 seis
7 siete
8 ocho
9 nueve
10 diez
11 once
12 doce
13 trece
14 catorce
15 quince
16 dieciséis
1(\d) dieci$1
20 veinte
21$ veintiuno
21 veintiún
22 veintidós
23 veintitrés
26 veintiséis
2(\d) veinti$1
30 treinta
40 cuarenta
50 cincuenta
60 sesenta
70 setenta
80 ochenta
90 noventa
(\d)(\d) $(\10) y $2
1(\d\d) cien[to $1]
500 quinientos
700 setecientos
900 novecientos
([579])(\d\d) $(\100) $2
(\d)(\d\d) $1cientos[ $2]
1(\d{3}) mil[ $1]
(\d{1,3})(\d{3}) $1 mil[ $2]
1(\d{6}) un millón[ $1]
(\d{1,6})(\d{6}) $1 millones[ $2]
1(\d{12}) un billón[ $1]
(\d{1,6})(\d{12}) $1 billones[ $2]
1(\d{18}) un trillón[ $1]
(\d{1,6})(\d{18}) $1 trillones[ $2]
1(\d{24}) un cuatrillón[ $1]
(\d{1,6})(\d{24}) $1 cuatrillones[ $2]
1(\d{30}) un quintillón[ $1]
(\d{1,6})(\d{30}) $1 quintillones[ $2]

# negative number

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

# decimals

([-−]?\d+)[.] $1| punto
([-−]?\d+)[,] $1| coma
([-−]?\d+[.,])([^0]\d) $1| |$2
([-−]?\d+[.,])(\d)(\d)(\d) |$1 |$2| |$3| |$4
([-−]?\d+[.,]\d*)(\d) $1| |$2

# currency

# unit/subunit singular/plural

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

ARS:(\D+) $(\1: peso argentino, pesos argentinos, centavo, centavos)
BOB:(\D+) $(\1: boliviano, bolivianos, centavo, centavos)
BZD:(\D+) $(\1: dólar beliceño, dólares beliceños, centavo, centavos)
CEC:(\D+) $(\1: peso convertible, pesos convertibles, centavo, centavos)
CHF:(\D+) $(\1: franco suizo, francos suizos, céntimo, céntimos)
CLP:(\D+) $(\1: peso chileno, pesos chilenos, centavo, centavos)
CNY:(\D+) $(\1: yuan renminbi, yuan renminbi, fen, fen)
COP:(\D+) $(\1: peso colombiano, pesos colombianos, centavo, centavos)
CRC:(\D+) $(\1: colón costarricense, colones costarricenses, céntimo, céntimos)
DOP:(\D+) $(\1: peso dominicano, pesos dominicanos, centavo, centavos)
ESP:(\D+) $(\1: peseta, pesetas, céntimo, céntimos)
EUR:(\D+) $(\1: euro, euros, céntimo, céntimos)
GBP:(\D+) $(\1: libra esterlina, libras esterlinas, penique, peniques)
GTQ:(\D+) $(\1: quetzal, quetzales, centavo, centavos)
HNL:(\D+) $(\1: lempira, lempiras, centavo, centavos)
JPY:(\D+) $(\1: yen, yenes, sen, sen)
MXN:(\D+) $(\1: peso mexicano, pesos mexicanos, centavo, centavos)
NIO:(\D+) $(\1: córdoba, córdobas, centavo, centavos)
PAB:(\D+) $(\1: balboa, balboas, céntimo, céntimos)
PEN:(\D+) $(\1: sol, soles, centavo, centavos)
PYG:(\D+) $(\1: guaraní, guaraníes, céntimo, céntimos)
SVC:(\D+) $(\1: colón salvadoreño, colones salvadoreños, céntimo, céntimos)
USD:(\D+) $(\1: dólar estadounidense, dólares estadounidenses, centavo, centavos)
UYU:(\D+) $(\1: peso uruguayo, pesos uruguayos, centésimo, centésimos)
VE[DS]:(\D+) $(\1: bolívar venezolano, bolívares venezolanos, centavo, centavos)
VEF:(\D+) $(\1: bolívar fuerte, bolívares fuertes, céntimo, céntimos)

# masculine to feminine conversion of "un" after millions,
# if "as?$" matches currency name

f:(.*ill)(.*),(.*) \1$(f:\2,\3)		# don't modify un in millions
f:(.*)[uú]n([^a].*,|,)(.*as?) $(f:\1una\2\3) # un libra -> una libra
f:(.*ient)o(s.*),(.*as?) $(f:\1a\2,\3)  # doscientos libra/libras -> doscientas
f:(.*),(.*) \1\2

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

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

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

# ordinal

feminine:(.*ill)(.*) \1$(feminine:\2) # don't modify un in millions
feminine:(.*ient)o(s.*) $(feminine:\1a\2)  # doscientos  -> doscientas
feminine:(.*)[uú]no?([^a].*|$) $(feminine:\1una\2) # un  -> una
feminine:(.*) \1

== feminine ==

(.*)	$(feminine:|$1|)

== masculine ==

1 un
(.*)	$1

== ordinal-masculine ==

(.*) $(ordinal \1)

== ordinal ==

1 primero
2 segundo
3 tercero
4 cuarto
5 quinto
6 sexto
7 séptimo
8 octavo
9 noveno
10 décimo
1([1-79])	decimo$(ordinal \1)
18 decimoctavo
20 vigésimo
2(\d) vigesimo$(ordinal \1)
30 trigésimo
40 cuadragésimo
50 quincuagésimo
60 sexagésimo
70 septuagésimo
80 octogésimo
90 nonagésimo
(\d)(\d) $(ordinal \10) $(ordinal \2)
100 centésimo
200 ducentésimo
300 tricentésimo
400 cuadringentésimo
500 quingentésimo
600 sexcentésimo
700 septingentésimo
800 octingentésimo
900 noningentésimo
(\d)(\d\d) $(ordinal \100) $(ordinal \2)
1(\d{3}) milésimo[ $(ordinal \1)]
(\d{1,3})(\d{3}) $1 milésimo[ $(ordinal \2)]
1(\d{6}) millonésimo[ $(ordinal \1)]
(\d{1,3})(\d{6}) $1 millonésimo[ $(ordinal \2)]
1(\d{9}) milmillonésimo[ $(ordinal \1)]
(\d{1,3})(\d{9}) $1 milmillonésimo[ $(ordinal \2)]

== ordinal-feminine ==

([-−]?\d+) $(ordinal-feminine $(ordinal-masculine \1))
(.*)o\b(.*)  $(ordinal-feminine \1a\2)
(.*)   \1

== ordinal-masculine-adjective ==

([-−]?\d+) $(ordinal-masculine-adjective $(ordinal-masculine \1))
(.*)decimoprimero \1undécimo
(.*)decimosegundo \1duodécimo
(.*(primer|tercer))o \1
(.*) \1

# ordinal abbreviation

== (ordinal)-number(-feminine|-masculine|-masculine-adjective)? ==

([-−]?\d+) \3$(ordinal-number $(\1\2 \3))
.*er .ᵉʳ
.*a .ª
.*o .º

== help ==

"" $(1)|, $(2), $(3)\n$(\0 feminine)$(\0 masculine)$(\0 ordinal-number-masculine)$(\0 ordinal-number-masculine-adjective)$(\0 ordinal-number-feminine)$(\0 ordinal-feminine)$(\0 ordinal-masculine)$(\0 ordinal-masculine-adjective)
(feminine|masculine|ordinal(-number)?(-feminine|-masculine)?(-adjective)?) \1: $(\1 1), $(\1 2), $(\1 3)\n
