I imagine the BigInt index that points to the starting digit for your data would take more space than the data itself. Here is an example in julia:
julia> setprecision(BigFloat, 10_000) do
findfirst("123","$(BigFloat(pi)))")
end
1926:1928
I.e. the string "123" starts at index 1926.On the other hand, this type of "encoding" always fun to think about. I would suggest reading "Permutation City" by Greg Egan if you are amused by this.