Heat a large soup pot or Dutch oven over medium-high heat. Add the ground beef and cook until browned, breaking it apart as it cooks. If the pot looks dry, add the olive oil. If there is more than 1 to 2 tablespoons of grease in the pot, drain the excess.
Add the onion, carrots, and celery. Cook for 6 to 8 minutes, stirring occasionally, until the vegetables begin to soften.
Add the garlic and tomato paste. Cook for 1 minute, stirring constantly, until the tomato paste darkens slightly and coats the beef and vegetables.
Stir in the diced tomatoes, tomato sauce, beef broth, water, kidney beans, cannellini beans, Italian seasoning, oregano, basil, crushed red pepper flakes, Worcestershire sauce, 1 teaspoon salt, and 1/2 teaspoon black pepper.
Bring the soup to a boil, then reduce the heat to medium-low. Simmer uncovered for 20 to 25 minutes, stirring occasionally, until the vegetables are tender and the broth has deepened in flavor.
Stir in the ditalini pasta and simmer for 10 to 12 minutes, or until the pasta is tender. Stir often so the pasta does not stick to the bottom of the pot.
Turn off the heat and stir in 1 teaspoon red wine vinegar. Taste and add more vinegar, salt, or pepper as needed.
Serve hot with Parmesan, parsley, and crusty bread.