Swap letter and digit runs Given an input string containing only alphanumeric ASCII characters and starting with a letter, swap each letter run with the digit run which follows.

A run is a sequence of consecutive letters or digits. Note that in the case where the input string ends with a run of letters, this run is left untouched.

Walk-through example

For instance, given the input string uV5Pt3I0:


Separate runs of letters and runs of digits: uV 5 Pt 3 I 0
Identify pairs of runs: (uV 5) (Pt 3) (I 0)
Swap pairs of runs: (5 uV) (3 Pt) (0 I)
Concatenate: 5uV3Pt0I


Examples

uV5Pt3I0 -&gt; 5uV3Pt0I
J0i0m8 -&gt; 0J0i8m
abc256 -&gt; 256abc
Hennebont56Fr -&gt; 56HennebontFr
Em5sA55Ve777Rien -&gt; 5Em55sA777VeRien
nOoP -&gt; nOoP


This is code-golf so the shortest answer in bytes wins. Explanations are encouraged.
Retina, 15 bytes

(\D+)(\d+)
$2$1


This replaces the regex (\D+)(\d+) with $2$1. Let's break that down if you don't know what that means.

The \D means 'match anything that isn't a number'. \d means 'match everything that is a number'. The + sign means 'match this at least once but try to match it as many times as possible'. The brackets define a group. The first group is (\D+) and the second is (\d+)

In the second line we say that we want to put whatever was matched by the second group, followed by whatever was matched by the first group. This effectively swaps the letter and digit runs.

Try it online!