Inverse Champernowne Substrings The Champernowne Constant is the irrational number 0.1234567891011... extending  ad infinum. 

We've done a question about it before. But this question is about its reciprocal, known as the Inverse Champernowne Constant. This is approximately 8.10000007.

Given a string of between one and three digits (every 3-digit string appears within the first 10,000 decimal places) inclusive, give the number of decimal places in the decimal portion of the Inverse Champernowne Constant that precede the first appearance of that string.

Builtins that perform this directly or generate approximations of either of these constants are forbidden, but builtins for arbitrary precision arithmetic are still permissible.

This is code golf, so the shortest program, in bytes, wins.

Test cases:

1 0
2 52
3 13
4 29
5 36
6 7
7 8
8 27
9 23
10 0
100 0
998 187
999 67
01 321
001 689
010 418
MATL, 37 bytes
Thanks to @AndrasDeak for his help with Octsympy's vpa function!
'1/'1e4:&quot;@V]N$h1e4H$Y$t32&gt;)I0h)jXf1)q

EDIT (June 11, 2016): due to changes in the language, replace 0 by J in the code. The link below includes that modification
Try it online!
It takes a while in the online compiler (less than 1 minute).
'1/'        % literal string
1e4:        % array [1,2,...,1e4]
&quot;           % for each number in that array
  @V        % push number and convert to string
]           % end loop
N$h         % concatenate all strings
1e4H$Y$     % compute 1/123456789101112... as a string with 1e4 significant digits
t32&gt;)       % remove unwanted spaces and newlines in the output string
I0h)        % remove the first two characters ('8.')
j           % input string
Xf          % find indices of occurrences of input string within computed string
1)          % take first index
q           % subtract 1