I solved it myself. I realized that when I called "sub" with no parameters I ran into the "pwr" breakpoint that something was dreadfully wrong. It mixed the stupid if-the-else's up so I had to add some begin/end's to make sure it worked properly.

:roll:

Here's the working code for those interested:
Code:
program tokenizer;

{$APPTYPE CONSOLE}

uses
  SysUtils, Math{, Variants};

type TDynStrArray = array of string;  

    function tokenize(line: string): TDynStrArray;
    var temp: string;
        l,i: cardinal;
        inStr,wasStr: boolean;
    begin
      l := 0;
      temp := line;
      instr := false;

      while temp <do> length&#40;result&#41;-1 then
          SetLength&#40;result, l+8&#41;;
        wasStr &#58;= false;
        for i &#58;= 1 to Length&#40;temp&#41; do
          case temp&#91;i&#93; of
            '`'&#58; begin inStr &#58;= not inStr; wasStr &#58;= true; end;
            ' ',#0&#58; if not inStr then Break;
          end;
        if not wasStr then
          result&#91;l&#93; &#58;= copy&#40;temp,1,i-1&#41;
        else
          result&#91;l&#93; &#58;= copy&#40;temp,2,i-3&#41;;
        Delete&#40;temp,1,i&#41;;
        inc&#40;l&#41;;
      end;

      setlength&#40;result,l&#41;;
    end;

var inputtokens&#58; TDynStrArray;
    input&#58; string;
    i&#58; integer;
    exit&#58; boolean = false;
    v1,v2&#58; variant;

begin
  writeln&#40;'Enter tokens seperated by spaces, strings delimited by `''s.'&#41;;

  repeat
    v1 &#58;= 0;
    v2 &#58;= 0;
    input &#58;= '';
    setlength&#40;inputtokens,0&#41;;

    write&#40;'> '&#41;; readln&#40;input&#41;;
    writeln;

    if input <then>= 3 then
          writeln&#40;'Sub&#58;'#9,Variant&#40;inputtokens&#91;1&#93;&#41; - Variant&#40;inputtokens&#91;2&#93;&#41;&#41;;
      end else if inputtokens&#91;0&#93; = 'pwr' then
        if length&#40;inputtokens&#41; >= 3 then begin
          v1 &#58;= 0.0 + Math.Power&#40;StrToFloatDef&#40;inputtokens&#91;1&#93;,0&#41;,StrToFloatDef&#40;inputtokens&#91;2&#93;,0.0&#41;&#41;;
          writeln&#40;'Power&#58;'#9,v1&#41;;
        end else writeln&#40;'Error, PWR given too few parameters.'&#41;
      else
        writeln&#40;'Unknown command "',inputtokens&#91;0&#93;,'"'&#41;;

      exit &#58;= pos&#40;'exit',input&#41; > 0;
      
    end else writeln&#40;'Enter something I can process first.'&#41;;

    writeln;
  until &#40;exit&#41;;
end.