# Message from JavaScript discussions

August 2017

— They are 1:1 mapping as a DFA and regex can describe each other 100%

So if you have `<w{5}>`

how can you tell it derives the same string as `/hello/`

without passing in any data or otherwise running the regular expression builtins? You do simple comparison operators on the transition ranges between the nodes, very simple!

— All ranges for the first one would be `{0, 65535}`

whereas for the second one it would vary... `{72, 72}`

and then `{69, 69}`

etc... since the ranges of the second expression fit into the ranges of the first you can say "Yes, these two expressions can derive the same string". If you want a strict result that says "these two expressions derive the same EXACT strings, no more and no less", then you can do a direct strict equality comparison instead

— Ah.

— Thanks

— This is, again, for `/hello/`

except showing the code points:

-->(s1)-72->(s2)-69->(s3)-76->(s4)-76->(s5)-79->((s6))

and here's what

`<w{5}>`

looks like:-->(s1)-0,65535->(s2)-0,65535->(s3)-0,65535->(s4)-0,65535->(s5)-0,65535->((s6))

— Not yet but I might

— For now I just made a simple DFA which can function just like a regex

— Parsing the regex to the DFA is another story... haha

— Deterministic finite automata are a form of tree automation, it's how CPU's work on a low level and also parsers

— A parser will use DFA/NFA to parse code one symbol at a time

— For my use case you can tell if two totally different regex can derive the same strings