So this is how the ascii characters seem to be laid out.
first | or ! determine the direction of the stem. | is up ! is down.
once we know that, the symbols are written before or after the stem direction relative to how it appears in the actual glyph.
For example is we have
![jatai or wai :(|):](./images/smilies/jatai.png)
then obviously it will be written on both sides as "(|)" but if we have
![nai :|(:](./images/smilies/nai.png)
then it will appear only on the righ side as "|(".
Quick chart guide:
![nai :|(:](./images/smilies/nai.png)
and
![nao :!(:](./images/smilies/nao.png)
= "(" See how the glyph curves in a concave manner? Well, so do our parenthesis!
![pai :/|:](./images/smilies/pai.png)
and
![pao :\!:](./images/smilies/pao.png)
= "/" and "\" LOOK AT THE SYMBOL AND IT WILL BASICALLY TELL YOU HOW TO WRITE IT
![tai :|):](./images/smilies/tai.png)
and
![tao :!):](./images/smilies/tao.png)
= ")" Convex = convex parenthesis
![phai or fai :/ /|:](./images/smilies/phai.png)
and
![phao or fao :\ \!:](./images/smilies/phao.png)
= "/ /" and "\ \"
![patai or gai :/|):](./images/smilies/patai.png)
and
![patao or gao :\!):](./images/smilies/patao.png)
= "/ x )" and "\ x )" the x represents the stem direction marking. As you can see if you look at the symbol, it's a combination of ")" and "\ or /"
![jatai or wai :(|):](./images/smilies/jatai.png)
and
![jatao or wao :(!):](./images/smilies/jatao.png)
just have parenthesis on both sides.
![jakai or dai :(|\:](./images/smilies/jakai.png)
and
![jakao or dao :(!/:](./images/smilies/jakao.png)
are just like
![patao or gao :\!):](./images/smilies/patao.png)
and
![patai or gai :/|):](./images/smilies/patai.png)
but the arrow heads are reversed so the parenthesis and slashes will also be. They are "( x \" and "( x /"
So once you get a grip of the pattern, writing these is really easy. You just have to remember which the ! and | and which sign represents which arrow head.
![Smile :)](./images/smilies/icon_e_smile.gif)