1/2       => ½
1/4       => ¼
3/4       => ¾

1st       => 1<sup>st</sup>
13-th     => 13<sup>th</sup>

a1/2b     => a1/2b
(tM)      => (tM)
(tm)      => ™
(TM)      => ™

(s)         => §
(s)ection   => §ection
section(s)  => section(s)       ;; (s) is a common plural suffix in English thus "(s)" must not be parsed after a non-space character.
section(s)ee => section(s)ee

a - b     => a – b
a -- b    => a — b
a ~--- b  => a --- b
a<=b      => a&lt;=b
a->b      => a-&gt;b

1>=2      => 1≥2
1 <= 2    => 1 ≤ 2
1 !=2     => 1 ≠2
1!= 2     => 1≠ 2
smth ~2   => smth ≈2
smth ~ 2  => smth ~ 2
x != 55   => x != 55

a <= b    => a ⇐ b
a -> b    => a → b
a <-> b   => a ↔ b
a <- b    => a ← b

&&epsilon;  => ε
&&Epsilon;  => Ε
&&12846;    => &#12846;
&&1234567;  => &#1234567;
&&12345678; => &amp;&amp;12345678;  ;; not replaced since it's too long (more than $10FFFF = 1114111 digits).
&&5;        => &#5;


$preserveTypographics on

0999        => 0999     ;; not formatted as a number because nums <= 2500 are considered years and are left as they are.
1000        => 1000
1500        => 1500
2008        => 2008
2008!       => 2008!
2008,5      => <span class="nowrap"><span class="num-group-2">2</span><span class="num-group-1">008</span>,5</span>   ;; years don't have a fraction part so the num is formatted.

2501        => <span class="nowrap"><span class=&q;num-group-2&q;>2</span><span class=&q;num-group-1&q;>501</span></span>
12345678    => <span class="nowrap"><span class=&q;num-group-3&q;>12</span><span class=&q;num-group-2&q;>345</span><span class=&q;num-group-1&q;>678</span></span>
123456789   => <span class="nowrap"><span class=&q;num-group-3&q;>123</span><span class=&q;num-group-2&q;>456</span><span class=&q;num-group-1&q;>789</span></span>
1234567890  => 1234567890

1234,56        => <span class="nowrap"><span class=&q;num-group-2&q;>1</span><span class=&q;num-group-1&q;>234</span>,56</span>
1234.78        => <span class="nowrap"><span class=&q;num-group-2&q;>1</span><span class=&q;num-group-1&q;>234</span>.78</span>
2599!        => <span class="nowrap"><span class=&q;num-group-2&q;>2</span><span class=&q;num-group-1&q;>599</span>!</span>
1234.78!        => <span class="nowrap"><span class=&q;num-group-2&q;>1</span><span class=&q;num-group-1&q;>234</span>.78!</span>

12345.6 123.4 1.4   =>  <span class="nowrap"><span class="num-group-2">12</span><span class="num-group-1">345</span>.6 </span><span class="nowrap">123.4 </span><span class="nowrap">1.4</span>   ;; there was a bug causing fractional part to disappear.
(это была Windows 3.1) -- тоже испытал лёгкий шок  =>  (это была Windows <span class="nowrap">3.1)</span> — тоже испытал лёгкий шок   ;; there was a bug causing trailing ")" to be lost.

10C     => 10C
10F     => 10F
10 C    => <span class="nowrap">10°C</span>
10^C    => <span class="nowrap">10°C</span>
-10^C   => <span class="nowrap">-10°C</span>
10^F    => <span class="nowrap">10°F</span>
10 F    => <span class="nowrap">10°F</span>
+10 F   => <span class="nowrap">+10°F</span>

ab, cd ,ee , ff ! gg ?hi ?jk! !zz => ab, cd ,ee, ff! gg ?hi ?jk! !zz
a :b : c: d:e   => a :b: c: d:e   ;; standalone colon is glued to the left.
1 !         => 1 !
a(')b1(')   => áb1(')
a(`)b1(`)   => àb1(`)

e.g.        => <span class="nowrap">e.g.</span>
I. e.       => <span class="nowrap">I. e.</span>
да, и пр.,  => да, <span class="nowrap">и пр.</span>,
да, и пр,   => да, <span class="nowrap">и пр,</span>
да, И ПР,   => да, И ПР,      ;; character case matters in no-wrap rules.
give him 10 bucks?   => give him <span class="nowrap">10 bucks?</span>
когда уже 5 руб. будет = 100 у.е.?   => когда уже <span class="nowrap">5 руб.</span> будет = <span class="nowrap">100 у.е.</span>?

" a                     => " a
a "                     =>  a "
" " a " "               => " " a " "
"a..."                  => <span class="quotes quotes-0">«a…»</span>
..."a..."...            => …<span class="quotes quotes-0">«a…»</span>…
//..."a..."...//        => <em>…<span class="quotes quotes-0">«a…»</span>…</em>
//..."a**b**c..."...//  => <em>…<span class="quotes quotes-0">«a<strong>b</strong>c…»</span>…</em>
**a** "a..." //c//      => <strong>a</strong> <span class="quotes quotes-0">«a…»</span>\ <em>c</em>

//h "..." f//           => <em>h <span class="quotes quotes-0">«…»</span> f</em>
//h "b f//              => //h "b f//  ;; since citations via "apostrophes" are normal Wacko elements (like ** // etc.) they must have proper nesting.

"h "a "b                => "h "a "b
a "b c" d" z" z"        => a <span class="quotes quotes-0">«b c»</span> d" z" z"
"a "b c" d" z" z"       => <span class="quotes quotes-0">«a <span class="quotes quotes-1">“b c”</span> d»</span> z" z"
"h "a "b c" d" z" z"    => <span class="quotes quotes-0">«h <span class="quotes quotes-1">“a <span class="quotes quotes-2">‘b c’</span> d”</span> z»</span> z"
"h "a ("b ["1 2"] c" d". z" z"  => <span class="quotes quotes-0">«h <span class="quotes quotes-1">“a (<span class="quotes quotes-2">‘b [<span class="quotes quotes-2">‘1 2’</span>] c’</span> d”</span>. z»</span> z"
"a //string// inside"   => <span class="quotes quotes-0">«a <em>string</em> inside»</span>

$preserveTypographics off