Inverse Look-and-Say Background

The Look and Say Sequence is built up by reading off the digits of previous entries in the sequence, counting the number of digits in groups of the same digit. For example:

1 =&gt; 11 # (one 1)
11 =&gt; 21 # (two 1s)
21 =&gt; 1211 # (one 2, then one 1)
1211 =&gt; 111221 # (one 1, then one 2, then two 1s)


This sequence was the subject of various previous challenges. A simple Python 3 implementation of the generating function is:

&gt;&gt; from itertools import groupby
&gt;&gt; def look_and_say(obj):
      return "".join(f"{len(list(group))}{digit}" for digit, group in groupby(str(obj)))


Try it online!

Challenge

The purpose of this challenge is to implement an inverse Look and Say function. Given a Look and Say representation of a non-negative integer, your code should return the smallest non-negative integer for which the input is its Look and Say. Note that this is not the same as general Run Length Decoding, since the output must encode back precisely to the input: see the examples below for some of the subtleties involved.

This is code-golf, so shortest code in bytes wins, with all the standard loopholes forbidden. Input can be passed in (or returned) as either an integer or a string.

Test cases

10 =&gt; 0 # (1 zero)
12 =&gt; 2 # (1 two)
123 =&gt; 333333333333 # (12 threes)
1234 =&gt; 2444 # (1 two, 3 fours)
1232 =&gt; 222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 # (123 twos, since 2222 would return 42 not 1232)
2019 =&gt; 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 # (201 nines, since the only non-negative starting with 0 is 0)
2109 =&gt; 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 # (210 nines, since 11 would return 21 not 2109)
123456 =&gt; 244466666
123454 =&gt; 333333333333444444444444444444444444444444444444444444444 # (12 threes, 45 fours)
124234 =&gt; 2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222444 (124 twos, 3 fours, which is smaller than the alternatives)


Invalid inputs

Since there are no integers which have the following Look and Say representations, the behaviour for these inputs is undefined:

1
3
20
100
1010
10010
05AB1E, 11 bytes

∞&lt;ÅΔÅγs.ιJQ


Try it online!

Computes the look and say of all integers until finding one that matches the input. Will timeout for large outputs.