In a large bowl, combine the ground meat, breadcrumbs, parmesan, egg, garlic, oregano, salt, and pepper. Mix gently until just combined; avoid overworking the meat.
Form the mixture into small meatballs, about 1 inch in diameter. Place them on a plate as you go.
In a large pot, heat the olive oil over medium heat. Add onion, carrot, and celery; cook until the vegetables are softened and fragrant, about 5 minutes.
Pour in the broth and water. Bring the liquid to a gentle simmer.
Carefully drop the meatballs into the simmering broth. Cook for 8–10 minutes, or until the meatballs are cooked through.
Add the pasta and cook according to package directions until al dente. If using ditalini, keep an eye on it so it doesn’t overcook.
Stir in the greens and cook until wilted, about 1–2 minutes. Taste and adjust seasoning with salt, pepper, and a squeeze of lemon juice if using.
Ladle into bowls and serve hot. The soup is comforting on its own, or pair with crusty bread for dipping.