You are correct in that "Regex is its own language" but it is a language that works at the character level and makes no interpretation of the characters itself.
In your case, you can create a character set definition such as:
[\r\n\t\f] (for a specific set of characters)
or
[^ -~] (for all non-printing characters - also '\p{C}' for all control characters etc)
that will identify each specified character of interest. However, that is all it is designed to do: it cannot (of itself) convert that into a number or perform any other manipulations on the character (or string of characters). What a regex IS designed to do is to locate (and possibly extract) a sequence of characters that match some pattern and then return them to you so you can interpret them in some way. You can think of a regex engine as a fancy "fuzzy search" machine - it will find things for you but not much more.
In VB.NET there are 2 approaches you can take.The first is to realise that the collection of matches that are returned by the regex engine also include the position within the source string where the character(s) is/are found. Therefore, you can use this to perform your own string manipulation to convert the character to its ASCII index equivalent and then replace the single character with the correctly formatted character sequence that you create. (If you do this, I would recommend that you work backwards from the last match to the first because the location information returned by the regex is relative to the original location of the character in the source string. By working backwards you are not affecting the locations of the preceding matches when you make the substitutions).
There is another way with the .NET regex engine using delegate functions which can be called when each match is made. However, if you are just starting out with regexs, I would recommend that you understand the basics first (starting with what problems regexs are intended to solve) and then (much later) start looking at the fancier capabilities of whatever regex variant you are working with.
Also, please remember that not all regex variants are the same. Delegate functions are available in the .NET regex engine; PCRE provides a callback facility (using a different mechanism and pattern syntax), PERL allows you to insert code that is executed within the pattern and so on. Each regex variant and access language provide you with a different set of capabilities, often with differing extensions to the basic regex pattern syntax. That is way I suggest you start with the basics and only later get in to what else can be done.
I wish I could remember where I first read this (and attribute it appropriately) but there is a saying along the lines of: "I had a problem that I thought I could solve with a regex: now I have 2 problems!".
Susan