Regex que solo acepta números (0-9) y NO caracteres

Necesito una expresión regular que acepte solo dígitos de 0-9 y nada más. Sin letras, sin personajes.

Pensé que esto funcionaría:

^[0-9] 

o incluso

 \d+ 

pero estos aceptan caracteres: ^, $, (,), etc.

Pensé que las dos expresiones anteriores funcionarían bien y no estoy seguro de por qué está aceptando esos personajes.

EDITAR:

Esto es exactamente lo que estoy haciendo:

  private void OnTextChanged(object sender, EventArgs e) { if (!System.Text.RegularExpressions.Regex.IsMatch("^[0-9]", textbox.Text)) { textbox.Text = string.Empty; } } 

Esto está permitiendo a los personajes que mencioné anteriormente.

Su expresión regular ^[0-9] coincide con cualquier cosa que comience con un dígito, incluidas cadenas como “1A”. Para evitar una coincidencia parcial, añada un $ al final:

 ^[0-9]*$ 

Esto acepta cualquier cantidad de dígitos, incluido ninguno. Para aceptar uno o más dígitos, cambie * a + . Para aceptar exactamente un dígito, simplemente elimine el * .

ACTUALIZACIÓN: mezcló los argumentos con IsMatch . El patrón debería ser el segundo argumento, no el primero:

 if (!System.Text.RegularExpressions.Regex.IsMatch(textbox.Text, "^[0-9]*$")) 

PRECAUCIÓN: en JavaScript, \d es equivalente a [0-9] , pero en .NET, \d de forma predeterminada coincide con cualquier dígito decimal Unicode , incluida la tarifa exótica como 2 (Myanmar 2) y ߉ (N’Ko 9). A menos que su aplicación esté preparada para tratar con estos caracteres, quédese con [0-9] (o proporcione el indicador RegexOptions.ECMAScript ).