title: Steps to creating an NFA from a regular expression
body: <p>I'm having issues 'describing each step' when creating an NFA from a regular expression. The question is as follows:</p>
  
  <p>Convert the following regular expression to a non-deterministic ﬁnite-state automaton (NFA), clearly describing the steps of the algorithm that you use:
  (b|a)*b(a|b)</p>
  
  <p>I've made a simple 3-state machine but it's very much from intuition.
  This is a question from a past exam written by my lecturer, who also wrote the following explanation of Thompson's algorithm: <a href="http://www.cs.may.ie/staff/jpower/Courses/Previous/parsing/node5.html" rel="noreferrer">http://www.cs.may.ie/staff/jpower/Courses/Previous/parsing/node5.html</a></p>
  
  <p>Can anyone clear up how to 'describe each step clearly'? It just seems like a set of basic rules rather than an algorithm with steps to follow.</p>
  
  <p>Maybe there's an algorithm I've glossed over somewhere but so far I've just created them with an educated guess.</p>