[DUDA] ¿Como extraigo un trozo de texto de un texto comleto con arduino?

Yo con startsWith, no se como hacerlo, pero te propongo una solución "artesanal"

String Dreccion="G0 X123 Y456 Z-78";              // String de partida
int Ejes[]={0,0,0};                               // Valorea a encontrar
String Buscando[]={"X", "Y", "Z"};                // Texto buscado
int Indice=0;                                     // Auxiliar Para recorrer la cadena
int Largo=0;                                      // Longitud de la cadena
int Inicio, Fin=0;                                // Auxiliares para saver donde esta el valor buscado
void setup()
{
  Serial.begin(9600);
}

void loop()
{ 
  Dreccion += " ";                                             // Para asegurarse que encuentra el final
  Largo=Dreccion.length();                                     // Longitud de la cadena
  Indice=0;                                                    // Auxiliara para recorrer la cadena
  for (int x=0;x<3;x++)                                        // Tres vecs, una por cada coordenada
  {                                     
    while (Dreccion.substring(Indice,Indice+1)!=Buscando[x])   // Recorremos la cadena hasta encontrar
    {Indice++;}                                                // El nombre de la coordenada
    Inicio=Indice+1;                                           // Primer caracter con coordenada
    while (Dreccion.substring(Indice,Indice+1)!=" ")           // Recorremos la cadena hasta encontrar 
    {Indice++;}                                                // Un espacio (acabo la coordenada)   
    Fin=Indice;                                                // Ultimo caracter con coordenada
    Ejes[x]=Dreccion.substring(Inicio,Fin).toInt();            // Almcenamos valor en int
  }
  Serial.println(Ejes[0]);
  Serial.println(Ejes[1]);
  Serial.println(Ejes[2]);
  while (1){;}                                                  // Detenemos el programa 
}