]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/data/translit/Greek_Latin.txt
ICU-511.34.tar.gz
[apple/icu.git] / icuSources / data / translit / Greek_Latin.txt
index 221e5d084e65efbbbda267eff037d4ba7e788e15..9f626cee7a887d3dfc65028aa5d9737984f9bd40 100644 (file)
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2004, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# Rules are predicated on running NFD first, and NFC afterwards
-# :: [\u0000-\u007F \u0370-\u03FF [:Greek:] [:nonspacing mark:]] ;
-# MINIMAL FILTER GENERATED FOR: Greek-Latin
-:: [;\u00B5\u00B7\u00C4\u00CB\u00CF\u00D6\u00DC\u00E4\u00EB\u00EF\u00F6\u00FC\u00FF-\u0101\u0112-\u0113\u012A-\u012B\u014C-\u014D\u016A-\u016B\u0178\u01D5-\u01DC\u01DE-\u01E3\u01EC-\u01ED\u022A-\u022D\u0230-\u0233\u0304\u0308\u0313-\u0314\u0342-\u0345\u037A\u037E\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03CE\u03D0-\u03D7\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F5\u03F7-\u07FB\u0401\u0407\u0451\u0457\u04D2-\u04D3\u04DA-\u04DF\u04E2-\u04E7\u04EA-\u04F1\u04F4-\u04F5\u04F8-\u04F9\u1E14-\u1E17\u1E20-\u1E21\u1E26-\u1E27\u1E2E-\u1E2F\u1E38-\u1E39\u1E4E-\u1E53\u1E5C-\u1E5D\u1E7A-\u1E7B\u1E84-\u1E85\u1E8C-\u1E8D\u1E97\u1F00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC1-\u1FC4\u1FC6-\u1FCC\u1FCF-\u1FD3\u1FD6-\u1FDB\u1FDF-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2126\u03F9] ;
-
-:: NFD (NFC) ; 
-
-# TEST CASES
-
-# Ὀλίγοι ἔμφονες πολλῶν ἀφρόνων φοβερώτεροι — Πλάτωνος
-# ᾂ ᾒ ᾢ ᾃ ᾓ ᾣ
-# ᾳ ῃ ῳ ὃ ὄ
-# ὠς ὡς ὢς ὣς
-# Ὠς Ὡς Ὢς Ὣς
-# ὨΣ ὩΣ ὪΣ ὫΣ
-# Ạ, ạ, Ẹ, ẹ, Ọ, ọ
-
-# Useful variables
-
-$lower = [[:latin:][:greek:] & [:Ll:]]; 
-$glower = [[:greek:] & [:Ll:]]; 
-$upper = [[:latin:][:greek:] & [:Lu:]] ; 
+# ***************************************************************************
+# *
+# *  Copyright (C) 2004-2013, International Business Machines
+# *  Corporation; Unicode, Inc.; and others.  All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Greek_Latin.txt
+# Generated from CLDR 
+#
+:: [;µ·ÄËÏÖÜäëïöüÿ-āĒ-ēĪ-īŌ-ōŪ-ūŸǕ-ǜǞ-ǣǬ-ǭȪ-ȭȰ-ȳ\u0304\u0308\u0313-\u0314\u0342-\u0345ͺ;Ά-ΊΌΎ-ΡΣ-ώϐ-ϗϛϝϟϡϣϥϧϩϫϭϯ-ϵϷ-\u07FBЁЇёїӒ-ӓӚ-ӟӢ-ӧӪ-ӱӴ-ӵӸ-ӹḔ-ḗḠ-ḡḦ-ḧḮ-ḯḸ-ḹṎ-ṓṜ-ṝṺ-ṻẄ-ẅẌ-ẍẗἀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼι῁-ῄῆ-ῌ῏-ΐῖ-Ί῟-Ῥῲ-ῴῶ-ῼΩϹ] ;
+:: NFD (NFC) ;
+$lower = [[:latin:][:greek:] & [:Ll:]];
+$glower = [[:greek:] & [:Ll:]];
+$upper = [[:latin:][:greek:] & [:Lu:]] ;
 $accent = [:M:] ;
-
-# NOTE: restrict to just the Greek & Latin accents that we care about
-# TODO: broaden out once interation is fixed
 $accentMinus = [ [\u0300-\u0345] & [:M:] - [\u0338]] ;
-
 $macron = \u0304 ;
 $ddot = \u0308 ;
 $ddotmac = [$ddot$macron];
-
-$lcgvowel = [αεηιουω] ; 
-$ucgvowel = [ΑΕΗΙΟΥΩ] ; 
-$gvowel = [$lcgvowel $ucgvowel] ; 
-$lcgvowelC = [$lcgvowel $accent] ; 
-
+$lcgvowel = [αεηιουω] ;
+$ucgvowel = [ΑΕΗΙΟΥΩ] ;
+$gvowel = [$lcgvowel $ucgvowel] ;
+$lcgvowelC = [$lcgvowel $accent] ;
 $evowel = [aeiouyAEIOUY];
 $evowel2 = [iuyIUY];
-$vowel = [ $evowel $gvowel] ; 
-
-$gammaLike = [ΓΚΞΧγκξχϰ] ; 
-$egammaLike = [GKXCgkxc] ; 
-$smooth = ̓ ; 
-$rough = ̔ ; 
-$iotasub = ͅ ; 
-
+$vowel = [ $evowel $gvowel] ;
+$gammaLike = [ΓΚΞΧγκξχϰ] ;
+$egammaLike = [GKXCgkxc] ;
+$smooth = \u0313 ;
+$rough = \u0314 ;
+$iotasub = \u0345 ;
 $evowel_i = [$evowel-[iI]] ;
 $evowel2_i = [uyUY];
-
 $underbar = \u0331;
-
 $afterLetter = [:L:] [[:M:]\']* ;
 $beforeLetter = [[:M:]\']* [:L:] ;
-$beforeLower = $accent * $lower ; 
-
+$beforeLower = $accent * $lower ;
 $notLetter = [^[:L:][:M:]] ;
-$under = ̱;
-
-# Fix punctuation
-# preserve original
-\: <> \: $under ;
-\? <> \? $under ;
-
-\; <> \? ;
-· <> \: ;
-
-# CIRCUMFLEX: convert greek circumflex to normal one. Could use tilde or inverted breve
-
-\u0342 <> \u0302 ; 
-
-# IOTA: convert iota subscript to iota
-# first make previous alpha long!
-
+$under = \u0331;
+\: ↔ \: $under ;
+\? ↔ \? $under ;
+\; ↔ \? ;
+· ↔ \: ;
+\u0342 ↔ \u0302 ;
 $accent_minus = [[$accent]-[$iotasub$macron]];
-
-Α } $accent_minus * $iotasub > | Α $macron ;  
-α } $accent_minus * $iotasub > | α $macron ; 
-
-# now convert to uppercase if after uppercase, ow to lowercase
-
-$upper $accent * { $iotasub > I ; 
-$iotasub > i ; 
-
-| $1 $iotasub < ($evowel $macron $accentMinus *) i ;
-| $1 $iotasub < ($evowel $macron $accentMinus *) I ;
-
-# BREATHING
-
-# Convert rough breathing to h, and move before letters.
-
-# Make A ` x = > H a x
-
- Α ($macron?) $rough } $beforeLower > H | α $1; 
- Ε $rough } $beforeLower > H | ε; 
- Η $rough } $beforeLower > H | η ; 
- Ι ($ddot?) $rough } $beforeLower > H | ι  $1; 
- Ο $rough } $beforeLower > H | ο ; 
- Υ $rough } $beforeLower > H | υ ; 
- Ω ($ddot?) $rough } $beforeLower > H | ω $1; 
-
-# Make A x ` = > H a x
-
-Α ($glower $macron?) $rough > H | α $1 ; 
-Ε ($glower) $rough > H | ε $1 ; 
-Η ($glower) $rough > H | η $1 ; 
-Ι ($glower $ddot?) $rough > H | ι $1 ; 
-Ο ($glower) $rough > H | ο $1 ; 
-Υ ($glower) $rough > H | υ $1 ; 
-Ω ($glower  $ddot?) $rough > H | ω $1 ; 
-
-#Otherwise, make x ` into h x and X ` into H X
-
-($lcgvowel + $ddotmac? ) $rough > h | $1 ; 
-($gvowel + $ddotmac? ) $rough > H | $1 ; 
-
-# Go backwards with H
-
-| $1 $rough < h ($evowel $macron $ddot? $evowel2_i $macron?) ;
-| $1 $rough < h ($evowel $ddot? $evowel2 $macron?) ;
-| $1 $rough < h ($evowel $macron? $ddot?) ;
-
-| $1 $rough < H ([AEIOUY] $macron $ddot? $evowel2_i $macron?) ;
-| $1 $rough < H ([AEIOUY] $ddot? $evowel2 $macron?) ;
-| $1 $rough < H ([AEIOUY] $macron? $ddot?) ;
-
-# titlecase, have to fix individually
-# in the future, we should add &uppercase() to make this easier
-
-| A $1 $rough < H a ($macron  $ddot? $evowel2_i $macron?) ;
-| E $1 $rough < H e ($macron  $ddot? $evowel2_i $macron?) ;
-| I $1 $rough < H i ($macron  $ddot? $evowel2_i $macron?) ;
-| O $1 $rough < H o ($macron  $ddot? $evowel2_i $macron?) ;
-| U $1 $rough < H u ($macron $ddot? $evowel2_i $macron?) ;
-| Y $1 $rough < H y ($macron $ddot? $evowel2_i $macron?) ;
-
-| A $1 $rough < H a ($ddot? $evowel2 $macron?) ;
-| E $1 $rough < H e ($ddot? $evowel2 $macron?) ;
-| I $1 $rough < H i ($ddot? $evowel2 $macron?) ;
-| O $1 $rough < H o ($ddot? $evowel2 $macron?) ;
-| U $1 $rough < H u ($ddot? $evowel2 $macron?) ;
-| Y $1 $rough < H y ($ddot? $evowel2 $macron?) ;
-
-| A $1 $rough < H a ($macron? $ddot? ) ;
-| E $1 $rough < H e ($macron? $ddot? ) ;
-| I $1 $rough < H i ($macron? $ddot? ) ;
-| O $1 $rough < H o ($macron? $ddot? ) ;
-| U $1 $rough < H u ($macron? $ddot? ) ;
-| Y $1 $rough < H y ($macron? $ddot? ) ;
-
-# Now do smooth
-
-#delete smooth breathing for Latin
-$smooth > ; 
-
-# insert in Greek
-# the assumption is that all Marks are on letters.
-
- | $1 $smooth < $notLetter { ([rR]) } [^hH$smooth$rough] ;
- | $1 $smooth < $notLetter { ($evowel $macron? $evowel2 $macron?) } [^$smooth$rough] ;
- | $1 $smooth < $notLetter { ($evowel $macron?) } [^$evowel2$smooth$rough] ;
-
-# TODO: preserve smooth/rough breathing if not 
-# on initial vowel sequence
-
-# need to have these up here so the rules don't mask
-
-# remove now superfluous macron when returning
-
-Α < A $macron ;  
-α < a $macron ; 
-
-η <> e $macron ;
-Η <> E $macron ;
-
-φ <> ph ; 
-Ψ } $beforeLower <> Ps ; 
-Ψ <> PS ; 
-
-Φ } $beforeLower <> Ph ; 
-Φ <> PH ;
-ψ <> ps ; 
-
-ω <> o $macron ;
-Ω <>  O $macron;
-
-# NORMAL
-
-α <> a ; 
-Α <> A ; 
-
-β <> b ; 
-Β <> B ; 
-
-γ } $gammaLike <> n } $egammaLike ; 
-γ <> g ; 
-Γ } $gammaLike <> N } $egammaLike ; 
-Γ <> G ; 
-
-δ <> d ; 
-Δ <> D ; 
-
-ε <> e ; 
-Ε <> E ; 
-
-ζ <> z ; 
-Ζ <> Z ; 
-
-θ <> th ; 
-Θ } $beforeLower <> Th ; 
-Θ <> TH ; 
-
-ι <> i ; 
-Ι <> I ; 
-
-κ <> k ;
-Κ <> K ; 
-
-λ <> l ; 
-Λ <> L ; 
-
-μ <> m ; 
-Μ <> M ; 
-
-ν } $gammaLike > n\' ; 
-ν <> n ; 
-Ν } $gammaLike <> N\' ; 
-Ν <> N ; 
-
-ξ <> x ; 
-Ξ <> X ; 
-
-ο <> o ; 
-Ο <> O ; 
-
-π <> p ; 
-Π <> P ; 
-
-ρ $rough <> rh; 
-Ρ $rough } $beforeLower <> Rh ; 
-Ρ $rough <> RH ; 
-ρ <> r ; 
-Ρ <> R ; 
-
-# insert separator before things that turn into s
-
-[Pp] { } [ςσΣϷϸϺϻ] > \' ; 
-
-# special S variants
-
-Ϸ <> Š ; # Ϸ GREEK CAPITAL LETTER SHO Uppercase_Letter Grek - L 
-ϸ <> š ; #ϸ GREEK SMALL LETTER SHO Lowercase_Letter Grek - L 
-Ϻ <> Ŝ ; # Ϻ GREEK CAPITAL LETTER SAN Uppercase_Letter Grek - L 
-ϻ <> ŝ ; # ϻ GREEK SMALL LETTER SAN Lowercase_Letter Grek - L 
-
-# underbar means exception
-
-# before a letter, initial
-ς } $beforeLetter <> s $underbar } $beforeLetter;
-σ } $beforeLetter <> s } $beforeLetter;
-
-# otherwise, after a letter = final 
-$afterLetter { σ <> $afterLetter { s $underbar;
-$afterLetter { ς <> $afterLetter { s ;
-
-# otherwise (isolated) = initial
-ς <> s $underbar;
-σ <> s ;
-
-# [Pp] { Σ <> \'S ; 
-Σ <> S ; 
-
-τ <> t ; 
-Τ <> T ; 
-
-$vowel {υ } <> u ; 
-υ <> y ; 
-$vowel { Υ <> U ; 
-Υ <> Y ; 
-
-χ <> ch ; 
-Χ } $beforeLower <> Ch ; 
-Χ <> CH ; 
-
-# Completeness for ASCII
-
+Α } $accent_minus * $iotasub → | Α $macron ;
+α } $accent_minus * $iotasub → | α $macron ;
+$upper $accent * { $iotasub → I ;
+$iotasub → i ;
+| $1 $iotasub ← ($evowel $macron $accentMinus *) i ;
+| $1 $iotasub ← ($evowel $macron $accentMinus *) I ;
+Α ($macron?) $rough } $beforeLower → H | α $1;
+Ε $rough } $beforeLower → H | ε;
+Η $rough } $beforeLower → H | η ;
+Ι ($ddot?) $rough } $beforeLower → H | ι  $1;
+Ο $rough } $beforeLower → H | ο ;
+Υ $rough } $beforeLower → H | υ ;
+Ω ($ddot?) $rough } $beforeLower → H | ω $1;
+Α ($glower $macron?) $rough → H | α $1 ;
+Ε ($glower) $rough → H | ε $1 ;
+Η ($glower) $rough → H | η $1 ;
+Ι ($glower $ddot?) $rough → H | ι $1 ;
+Ο ($glower) $rough → H | ο $1 ;
+Υ ($glower) $rough → H | υ $1 ;
+Ω ($glower  $ddot?) $rough → H | ω $1 ;
+($lcgvowel + $ddotmac? ) $rough → h | $1 ;
+($gvowel + $ddotmac? ) $rough → H | $1 ;
+| $1 $rough ← h ($evowel $macron $ddot? $evowel2_i $macron?) ;
+| $1 $rough ← h ($evowel $ddot? $evowel2 $macron?) ;
+| $1 $rough ← h ($evowel $macron? $ddot?) ;
+| $1 $rough ← H ([AEIOUY] $macron $ddot? $evowel2_i $macron?) ;
+| $1 $rough ← H ([AEIOUY] $ddot? $evowel2 $macron?) ;
+| $1 $rough ← H ([AEIOUY] $macron? $ddot?) ;
+| A $1 $rough ← H a ($macron  $ddot? $evowel2_i $macron?) ;
+| E $1 $rough ← H e ($macron  $ddot? $evowel2_i $macron?) ;
+| I $1 $rough ← H i ($macron  $ddot? $evowel2_i $macron?) ;
+| O $1 $rough ← H o ($macron  $ddot? $evowel2_i $macron?) ;
+| U $1 $rough ← H u ($macron $ddot? $evowel2_i $macron?) ;
+| Y $1 $rough ← H y ($macron $ddot? $evowel2_i $macron?) ;
+| A $1 $rough ← H a ($ddot? $evowel2 $macron?) ;
+| E $1 $rough ← H e ($ddot? $evowel2 $macron?) ;
+| I $1 $rough ← H i ($ddot? $evowel2 $macron?) ;
+| O $1 $rough ← H o ($ddot? $evowel2 $macron?) ;
+| U $1 $rough ← H u ($ddot? $evowel2 $macron?) ;
+| Y $1 $rough ← H y ($ddot? $evowel2 $macron?) ;
+| A $1 $rough ← H a ($macron? $ddot? ) ;
+| E $1 $rough ← H e ($macron? $ddot? ) ;
+| I $1 $rough ← H i ($macron? $ddot? ) ;
+| O $1 $rough ← H o ($macron? $ddot? ) ;
+| U $1 $rough ← H u ($macron? $ddot? ) ;
+| Y $1 $rough ← H y ($macron? $ddot? ) ;
+$smooth → ;
+| $1 $smooth ← $notLetter { ([rR]) } [^hH$smooth$rough] ;
+| $1 $smooth ← $notLetter { ($evowel $macron? $evowel2 $macron?) } [^$smooth$rough] ;
+| $1 $smooth ← $notLetter { ($evowel $macron?) } [^$evowel2$smooth$rough] ;
+Α ← A $macron ;
+α ← a $macron ;
+η ↔ e $macron ;
+Η ↔ E $macron ;
+φ ↔ ph ;
+Ψ } $beforeLower ↔ Ps ;
+Ψ ↔ PS ;
+Φ } $beforeLower ↔ Ph ;
+Φ ↔ PH ;
+ψ ↔ ps ;
+ω ↔ o $macron ;
+Ω ↔  O $macron;
+α ↔ a ;
+Α ↔ A ;
+β ↔ b ;
+Β ↔ B ;
+γ } $gammaLike ↔ n } $egammaLike ;
+γ ↔ g ;
+Γ } $gammaLike ↔ N } $egammaLike ;
+Γ ↔ G ;
+δ ↔ d ;
+Δ ↔ D ;
+ε ↔ e ;
+Ε ↔ E ;
+ζ ↔ z ;
+Ζ ↔ Z ;
+θ ↔ th ;
+Θ } $beforeLower ↔ Th ;
+Θ ↔ TH ;
+ι ↔ i ;
+Ι ↔ I ;
+κ ↔ k ;
+Κ ↔ K ;
+λ ↔ l ;
+Λ ↔ L ;
+μ ↔ m ;
+Μ ↔ M ;
+ν } $gammaLike → n\' ;
+ν ↔ n ;
+Ν } $gammaLike ↔ N\' ;
+Ν ↔ N ;
+ξ ↔ x ;
+Ξ ↔ X ;
+ο ↔ o ;
+Ο ↔ O ;
+π ↔ p ;
+Π ↔ P ;
+ρ $rough ↔ rh;
+Ρ $rough } $beforeLower ↔ Rh ;
+Ρ $rough ↔ RH ;
+ρ ↔ r ;
+Ρ ↔ R ;
+[Pp] { } [ςσΣϷϸϺϻ] → \' ;
+Ϸ ↔ S\u030C ; # Ϸ GREEK CAPITAL LETTER SHO Uppercase_Letter Grek - L
+ϸ ↔ s\u030C ; #ϸ GREEK SMALL LETTER SHO Lowercase_Letter Grek - L
+Ϻ ↔ S\u0302 ; # Ϻ GREEK CAPITAL LETTER SAN Uppercase_Letter Grek - L
+ϻ ↔ s\u0302 ; # ϻ GREEK SMALL LETTER SAN Lowercase_Letter Grek - L
+ς } $beforeLetter ↔ s $underbar } $beforeLetter;
+σ } $beforeLetter ↔ s } $beforeLetter;
+$afterLetter { σ ↔ $afterLetter { s $underbar;
+$afterLetter { ς ↔ $afterLetter { s ;
+ς ↔ s $underbar;
+σ ↔ s ;
+Σ ↔ S ;
+τ ↔ t ;
+Τ ↔ T ;
+$vowel {υ } ↔ u ;
+υ ↔ y ;
+$vowel { Υ ↔ U ;
+Υ ↔ Y ;
+χ ↔ ch ;
+Χ } $beforeLower ↔ Ch ;
+Χ ↔ CH ;
 $ignore = [[:Mark:]''] * ;
-
-| k  < c ;
-| ph < f ;
-| i  < j ;
-| k < q ;
-| b < v } $vowel ;
-| b < w } $vowel;
-| u < v ;
-| u < w;
-| K < C ;
-| Ph < F ;
-| I < J ;
-| K < Q ;
-| B < V  } $vowel ;
-| B < W  } $vowel ;
-| U < V ;
-| U < W ;
-
-$rough } $ignore [:UppercaseLetter:] > H ;
-$ignore [:UppercaseLetter:] { $rough > H ;
-$rough < H ;
-$rough <> h ;
-
-# Completeness for Greek
-
-ϐ > | β ;
-ϑ > | θ ;
-ϒ > | Υ ;
-ϕ > | φ ;
-ϖ > | π ;
-
-ϰ > | κ ;
-ϱ > | ρ ;
-ϲ > | σ ;
-Ϲ > | Σ; #U+03F9 GREEK CAPITAL LUNATE SIGMA SYMBOL
-ϳ > j ;
-ϴ > | Θ ;
-ϵ > | ε ;
-
-µ > | μ ;
-
- ͺ > i;
-
-# delete any trailing ' marks used for roundtripping
-
- < [Ππ] { \' } [Ss] ;
- < [Νν] { \' } $egammaLike ;
-
+| k  ← c ;
+| ph ← f ;
+| i  ← j ;
+| k ← q ;
+| b ← v } $vowel ;
+| b ← w } $vowel;
+| u ← v ;
+| u ← w;
+| K ← C ;
+| Ph ← F ;
+| I ← J ;
+| K ← Q ;
+| B ← V  } $vowel ;
+| B ← W  } $vowel ;
+| U ← V ;
+| U ← W ;
+$rough } $ignore [:UppercaseLetter:] → H ;
+$ignore [:UppercaseLetter:] { $rough → H ;
+$rough ← H ;
+$rough ↔ h ;
+ϐ → | β ;
+ϑ → | θ ;
+ϒ → | Υ ;
+ϕ → | φ ;
+ϖ → | π ;
+ϰ → | κ ;
+ϱ → | ρ ;
+ϲ → | σ ;
+Ϲ → | Σ; #U+03F9 GREEK CAPITAL LUNATE SIGMA SYMBOL
+ϳ → j ;
+ϴ → | Θ ;
+ϵ → | ε ;
+µ → | μ ;
+ͺ → i;
+← [Ππ] { \' } [Ss] ;
+← [Νν] { \' } $egammaLike ;
 ::NFC (NFD) ;
-# ([\u0000-\u007F [:Latin:] [:Greek:] [:nonspacing mark:]]) ;
-# ([\u0000-\u007F \u00B7 [:Latin:] [:nonspacing mark:]]) ;
-# MINIMAL FILTER GENERATED FOR: Latin-Greek BACKWARD
-:: ( [':?A-Za-z\u00C0-\u00C5\u00C7-\u00CF\u00D1-\u00D6\u00D9-\u00DD\u00E0-\u00E5\u00E7-\u00EF\u00F1-\u00F6\u00F9-\u00FD\u00FF-\u010F\u0112-\u0125\u0128-\u0130\u0134-\u0137\u0139-\u013E\u0143-\u0148\u014C-\u0151\u0154-\u0165\u0168-\u017E\u01A0-\u01A1\u01AF-\u01B0\u01CD-\u01DC\u01DE-\u01E3\u01E6-\u01F0\u01F4-\u01F5\u01F8-\u021B\u021E-\u021F\u0226-\u0233\u0300-\u0337\u0339-\u0345\u0385-\u0386\u0388-\u038A\u038C\u038E-\u0390\u03AA-\u03B0\u03CA-\u03CE\u03D3-\u03D4\u0400-\u0401\u0403\u0407\u040C-\u040E\u0419\u0439\u0450-\u0451\u0453\u0457\u045C-\u045E\u0476-\u0477\u04C1-\u04C2\u04D0-\u04D3\u04D6-\u04D7\u04DA-\u04DF\u04E2-\u04E7\u04EA-\u04F5\u04F8-\u04F9\u1E00-\u1E99\u1E9B\u1EA0-\u1EF9\u1F00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FC1-\u1FC4\u1FC6-\u1FD3\u1FD6-\u1FDB\u1FDD-\u1FEE\u1FF2-\u1FF4\u1FF6-\u1FFC\u212A-\u212B] ) ;
+:: ( [':?A-Za-zÀ-ÅÇ-ÏÑ-ÖÙ-Ýà-åç-ïñ-öù-ýÿ-ďĒ-ĥĨ-İĴ-ķĹ-ľŃ-ňŌ-őŔ-ťŨ-žƠ-ơƯ-ưǍ-ǜǞ-ǣǦ-ǰǴ-ǵǸ-țȞ-ȟȦ-ȳ\u0300-\u0337\u0339-\u0345΅-ΆΈ-ΊΌΎ-ΐΪ-ΰϊ-ώϓ-ϔЀ-ЁЃЇЌ-ЎЙйѐ-ёѓїќ-ўѶ-ѷӁ-ӂӐ-ӓӖ-ӗӚ-ӟӢ-ӧӪ-ӵӸ-ӹḀ-ẙẛẠ-ỹἀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼ῁-ῄῆ-ΐῖ-Ί῝-΅ῲ-ῴῶ-ῼK-Å] ) ;