[xsl] How to tokenize a string that contains space-delimited tokens and a quoted string that must not be tokenized?

Subject: [xsl] How to tokenize a string that contains space-delimited tokens and a quoted string that must not be tokenized?
From: "Roger L Costello costello@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Mon, 28 Nov 2022 14:21:57 -0000
Hi Folks,

I want to tokenize this string:

if machine = "Intel 386 or later processors and compatible processors" then
ground

into this sequence of tokens:

if
machine
=
Intel 386 or later processors and compatible processors
then
ground

Unfortunately, this:

tokenize(.,'\s+')

does not do the desired tokenization, as it also breaks up:

"Intel 386 or later processors and compatible processors"

into pieces.

Nor does this do the desired tokenization:

tokenize(.,'(\s+)|(")')

Is there a simple way in XSLT/XPath to tokenize the string into the desired
sequence of tokens?

/Roger

Current Thread