Javascript. Reverse order of words in string, but not special characters
The current implementation of isAlpha ...
let isAlpha = (char) =&gt; {
  // match any alphabetic character.
  let pat = /[a-zA-z]/igm;

  if(char.match(pat)){
    return true;
  } else {
    return false;
  }
};

... can be refactored into something as short as this ...
function isAlpha(char) {
  return (/[a-zA-z]/).test(char);
};

... or maybe even that ...
function isAlpha(char) {
  // \w matches any word character
  // and is equal to [a-zA-Z0-9_]
  return (/\w/).test(char);
};

Why is that?
isAlpha gets invoked from within reverse always by providing a single character. Thus the regex can be simplified from /[a-zA-z]/igm to /[a-zA-z]/. Since isAlpha is supposed to return a boolean value do not use match and do no not return either true or false separately but use RegExp.prototype.test instead which already provides the correct return value.
Thats all so far but I will continue looking through the code, since as of now I don't understand why one wants to test a string stepwise character by character.
There is an answer of mine, regarding your question at StackOverflow. Maybe you get some inspiration from an alternative approach.