Digits follow a right-to-left part. The second line has one invisible mark added, and costs one character.
(function(){
var LRM=’\u200E’, i=document.getElementById(‘bd-in’);
if(!i) return;
var a=document.getElementById(‘bd-a’), b=document.getElementById(‘bd-b’),
n=document.getElementById(‘bd-note’), c=document.getElementById(‘bd-copy’);
var RTL=/[\u0590-\u05FF\u0600-\u06FF\u0700-\u074F\u0750-\u077F\u08A0-\u08FF\uFB50-\uFDFF\uFE70-\uFEFF]/;
function fix(s){
return s.replace(/([\u0590-\u05FF\u0600-\u06FF\u0700-\u074F\u0750-\u077F\u08A0-\u08FF\uFB50-\uFDFF\uFE70-\uFEFF]+)(?=[^\u0590-\u05FF\u0600-\u06FF\u0700-\u074F\u0750-\u077F\u08A0-\u08FF\uFB50-\uFDFF\uFE70-\uFEFF]*[0-9])/g, ‘$1’+LRM);
}
function run(){
var s=i.value, f=fix(s);
a.textContent=s; b.textContent=f;
if(!RTL.test(s)){ n.textContent=’No right-to-left letters here, so nothing can move.’; }
else if(f===s){ n.textContent=’Right-to-left letters, but no digits after them. Nothing to fix.’; }
else { n.textContent=’Digits follow a right-to-left part. The second line has one invisible mark added, and costs one character.’; }
c.dataset.copy=f;
}
i.addEventListener(‘input’,run); run();
c.addEventListener(‘click’,function(){
var v=c.dataset.copy||”;
if(navigator.clipboard) navigator.clipboard.writeText(v);
var o=c.textContent; c.textContent=’Copied’; setTimeout(function(){c.textContent=o;},1200);
});
})();
You type Sniper علي 99 into the name box. It saves. Then you look at your profile and it reads Sniper 99 علي — the number has moved in front of the Arabic. Nobody edited it. The characters are in exactly the order you typed them; the display follows a different rule, and this page is about that rule.
Text has a typed order and a shown order
Every character carries a direction. Latin letters and digits push left-to-right; Arabic, Hebrew, Persian and Urdu letters push right-to-left. When both appear in one line, the line is split into runs, and each run is laid out in its own direction.
Reversal inside an Arabic run is not a bug — that is simply Arabic being read right to left. The problem is when the runs themselves swap places, and that is what a trailing number causes.
The rule, measured
Each line below was run through the reference implementation of the bidirectional algorithm. The middle column is the real output, not a guess.
| What you type | What it shows | Order kept? |
|---|---|---|
| Sniper علي | Sniper ﻲﻠﻋ | Yes |
| علي Sniper | ﻲﻠﻋ Sniper | Yes |
| Sniper علي King | Sniper ﻲﻠﻋ King | Yes |
| Sniper علي 99 | Sniper 99 ﻲﻠﻋ | No |
| علي 2026 | 2026 ﻲﻠﻋ | No |
| Pro-علي-2026 | Pro-2026-ﻲﻠﻋ | No |
| Sniper علي 99 | Sniper ﻲﻠﻋ 99 | Yes |
| ꧁علي꧂ Pro | ꧁ﻲﻠﻋ꧂ Pro | Yes |
Read the failures together and the pattern is exact: digits placed after a right-to-left part get pulled to the other side of it. Latin words after it do not. A Latin word before it does not. Only the number moves.

The fix is one invisible character
There is a character whose entire job is to say “left-to-right resumes here”: the left-to-right mark, U+200E. Put one between the Arabic part and the number and the runs stay where you typed them.
It is invisible, it costs one character of your name limit, and it survives copy and paste — it is a real character in the text, not formatting. The tool above inserts it for you.
Not every invisible character is this well behaved. Some name fields normalize text before saving and quietly turn one blank character into an ordinary space; the NickStyler test of blank and spacing characters shows which ones stay as typed.
Names that scramble — and the same names fixed
Every pair below was checked both ways: the first list reorders, the second does not.
These reorder
The same names, with the mark
They look identical because the added character has no shape. Paste one into a name field and the number will stay put.
Combinations that never move
No digits after the right-to-left part, nothing to go wrong. Two hundred and eighty of these were checked; here is the set.
Why the ꧁ ꧂ frame holds its place
An unexpected result, and a useful one. The decorative frame characters — ꧁ ꧂ ༒ ࿐ — are not neutral. Unicode classifies them as strong left-to-right, the same class as a Latin letter. That means they anchor themselves instead of drifting, and a framed Arabic name keeps its shape. If you want to build a frame around the rest of your name, NickStyler adds ꧁ ꧂ and other symbols on both sides and shows every letter set in one place.
Neutral symbols and strong symbols
Most decorative symbols are neutral: they have no direction of their own and take it from whatever sits around them. That is why a star can appear to hop from one side of a name to the other depending on what you put next to it.
Neutral — direction comes from the neighbours
Strong left-to-right — these hold their position
Kaomoji do not cause this
A reasonable suspicion, and the answer is no. Every face below was run through the same check inside Pro … 99, and none of them moved anything. Faces are built from brackets, dots and arrows — neutral characters that take their direction from the text around them rather than imposing one.
Neutral faces
Faces that contain Arabic characters
These carry real Arabic digits and letters and still leave the name alone, because each one is too short to form a run that outranks its neighbours.

Changing the digit style does not help
A tempting idea: if European digits jump, write the number in Arabic-Indic digits instead. Measured, it changes nothing — all three move.
| Name | Digit style | What it shows |
|---|---|---|
| Sniper علي 99 | European 99 | Sniper 99 ﻲﻠﻋ |
| Sniper علي ٩٩ | Arabic-Indic ٩٩ | Sniper ٩٩ ﻲﻠﻋ |
| Sniper علي ۹۹ | Extended Arabic-Indic ۹۹ | Sniper ۹۹ ﻲﻠﻋ |
The reason is that the layout does not care which digits you picked; it cares that a number follows a right-to-left run. Position or the mark, not the numerals.
What to do
- Put the number first, or drop it. 99 علي and علي Pro both behave.
- Or add the mark. One invisible character between the right-to-left part and the digits, one character of your limit.
- Check the preview, not the input box. The input box is usually forced left-to-right; the profile is not. They can disagree.
- If a field strips invisible characters, use the first option. Some do, and then the mark is gone and the number moves again.
- Frames are safe here. ꧁ ꧂ ༒ ࿐ are strong left-to-right and will not drift.
Community kaomoji bank
100 faces from the shared library — tap any one to copy. Invisible formatting characters and right-to-left characters have been filtered out, since both break names in ways you cannot see.
Community nickname bank
Nicknames shared and copied most often by NickStyler visitors, filtered for abusive words.
Frequently asked questions
Did the app reverse my name?
No. The stored text is exactly what you typed. Only the layout differs, and it would look the same in any app that follows the standard — which is all of them.
Why does it look right while I am typing?
Because most input boxes are forced left-to-right for editing. The profile view is not forced, so it applies the real rule and the runs move.
Is the invisible mark against the rules?
It is an ordinary Unicode character with a documented purpose — telling the layout where left-to-right resumes. It is not a hidden or blank character trick; it does not blank your name or fake a space.
Will the mark show up as a box?
No. It has no shape at all by design, so there is nothing to draw and nothing to fail.
Does this affect Hebrew and Urdu too?
Yes — every right-to-left script behaves the same way, because the rule is about direction, not about a particular language.
My name has no Arabic and it still looks wrong.
Then this is not the cause. Look at font support instead — a style whose letters your reader’s device cannot draw will show as boxes rather than move around.
Last updated: 16 September 2026 by the NickStyler Editorial Team.
Build your own version
Type your name or a word you like, pick a style and copy it straight into the game or app.
✨ Open the generatorWas this article helpful?
Your answer tells us what to improve next.
What should we improve?
Thanks — your feedback has been recorded. ✅
